Qt批量new出控件

Qt的表中的QTreeWidgetItem控件批量new出来

在这里插入图片描述
原先的代码

	treeWidget = new QTreeWidget;//QTreeWidget的设置
    treeWidget->setStyleSheet("QTreeWidget::item{height:35px;}\
                                QTreeWidget::item:selected{border-image: url(images/bar.png);}\
                                QTreeWidget::item:pressed{border-image: url(images/bar.png);}\
                                QTreeWidget::item:hover{border-image: url(images/bar.png);}\
                                QHeaderView::section{border-image: url(images/Header.png); height:40px;font:13pt '宋体';color: white;padding-left:40px;}\
                                QTreeWidget::indicator{border-image:url(images/full.png)};\
                                ");
    treeWidget->setHeaderLabel(tr(u8"调查问卷表"));
    QFont mixBtnFont("SimSun",24, QFont::Bold);

    QTreeWidgetItem *group1 = new QTreeWidgetItem(treeWidget);//根节点设置
    group1->setText(0, u8"适用表");
    group1->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    group1->setCheckState(1, Qt::Unchecked);//1是关闭,0是开启勾选
    
//以下是子节点的设置,一共十四个子节点的选项QTreeWidgetItem类,太多了-------------
	QTreeWidgetItem *subitem11 = new QTreeWidgetItem(group1);
    subitem11->setText(0, u8"表一");
    subitem11->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem11->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem12 = new QTreeWidgetItem(group1);
    subitem12->setText(0, u8"表二");
    subitem12->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem12->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem13 = new QTreeWidgetItem(group1);
    subitem13->setText(0, u8"表三");
    subitem13->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem13->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem14 = new QTreeWidgetItem(group1);
    subitem14->setText(0, u8"表四");
    subitem14->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem14->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem15 = new QTreeWidgetItem(group1);
    subitem15->setText(0, u8"表五");
    subitem15->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem15->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem16 = new QTreeWidgetItem(group1);
    subitem16->setText(0, u8"表六");
    subitem16->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem16->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem17 = new QTreeWidgetItem(group1);
    subitem17->setText(0, u8"表七");
    subitem17->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem17->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem18 = new QTreeWidgetItem(group1);
    subitem18->setText(0, u8"表八");
    subitem18->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem18->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem19 = new QTreeWidgetItem(group1);
    subitem19->setText(0, u8"表九");
    subitem19->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem19->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem1a = new QTreeWidgetItem(group1);
    subitem1a->setText(0, u8"表十");
    subitem1a->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem1a->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem1b = new QTreeWidgetItem(group1);
    subitem1b->setText(0, u8"表十一");
    subitem1b->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem1b->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem1c = new QTreeWidgetItem(group1);
    subitem1c->setText(0, u8"表十二");
    subitem1c->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem1c->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem1d = new QTreeWidgetItem(group1);
    subitem1d->setText(0, u8"表十三");
    subitem1d->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem1d->setCheckState(1, Qt::Unchecked);

    QTreeWidgetItem *subitem1e = new QTreeWidgetItem(group1);
    subitem1e->setText(0, u8"表十四");
    subitem1e->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
    subitem1e->setCheckState(1, Qt::Unchecked);
    //准备换掉上面的又臭又长--------------------------------------

用向量的批量new出控件定义控件

上代码的子节点的设置,一共十四个QTreeWidgetItem改成以下的

    QStringList str;
    str << u8"表一" << u8"表二"<< u8"表三"<< u8"表四"<< u8"表五"<< u8"表六"<< u8"表七"<< u8"表八"
        << u8"表九"<< u8"表十"<< u8"表十一" << u8"表十二" << u8"表十三" << u8"表十四";
    QVector<QTreeWidgetItem*> items(14);//1.防止内存拷贝给了14。2.容器内最好是指针类型。
    for(int i = 0;i<items.size();i++){
        items[i] = new QTreeWidgetItem(group1);
        items[i]->setText(0,str.at(i));
        items[i]->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
        items[i]->setCheckState(1, Qt::Unchecked);

这个看起来舒服多了,强迫症者表示舒适。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄猿欲度愁攀援

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值