我想做QT ui编辑界面的控件列表类似的效果遇到如下问题

weixin_38086437 2019-09-19 03:20:50
用toolbox时  效果图如图问题1,我想让toolbox每一个tab的height 根据内容设置,填充空白,问题2,我想在同时间打开多个tab,默认只打开一个。用treewidget时 效果如问题,如何让item A 的子item 在控件最左边 前面的空白填充!!!目的是为了类似UI界面 控件列表的效果代码如下 toolbox:    QToolBox * qtb = new QToolBox(groupBox1);    //    qtb->setStyleSheet("QToolBoxButton { min-height:20px; }");    //第一个抽屉    QGroupBox * gb1 = new QGroupBox(qtb);    QIcon icon1("1.png");    //QVBoxLayout *layout = new QVBoxLayout(gb1);    QListWidget * qlw = new QListWidget(gb1);    qlw->addItem(new QListWidgetItem(QIcon(QObject::tr("4.png")), QObject::tr("view1")));    qlw->addItem(new QListWidgetItem(QIcon(QObject::tr("4.png")), QObject::tr("view2")));    int lw_height = (qlw->height() - 9 ) * qlw->count();    qlw->setGeometry(0,0,100,lw_height);    //layout->addWidget(qlw);    //qlw->setStyleSheet("background-color:blue;");    //第二个抽屉    QGroupBox * gb2 = new QGroupBox(qtb);    QIcon icon2("2.png");    //第三个抽屉    QGroupBox * gb3 = new QGroupBox(qtb);    QIcon icon3("3.png");    //添加抽屉    qtb->addItem((QWidget*)gb1,tr("views"));    qtb->addItem((QWidget*)gb2,tr("buttons"));    qtb->addItem((QWidget*)gb3,tr("lists"));    qtb->setItemIcon(0,icon1);    qtb->setItemIcon(1,icon2);    qtb->setItemIcon(2,icon3);    qtb->layout()->setSpacing(0);    //qtb->widget(0)->setStyleSheet("QToolBox::item{height:25px}");    //qtb->setGeometry(0,0,100,lw_height+75);    qtb->setGeometry(0,0,100,300);    //qtb->setLineWidth(200);-------------------------------------------------------------------------------------------treewidget:    QTreeWidget* treeWidget = new QTreeWidget(groupBox1);    treeWidget->setColumnCount(1);    QStringList headers;    headers << QObject::tr("列表");    treeWidget->setHeaderLabels(headers);    QStringList A;    A << QObject::tr("A");    QTreeWidgetItem *Aroot = new QTreeWidgetItem(treeWidget, A);    QStringList zhangsanChinese;    zhangsanChinese << QObject::tr("标签页");    QTreeWidgetItem *leaf1 = new QTreeWidgetItem(Aroot, zhangsanChinese);    leaf1->setIcon(0, QIcon("2.png"));    Aroot->addChild(leaf1);    QStringList zhangsanMath;    zhangsanMath << QObject::tr("标签名");    QTreeWidgetItem *leaf2 = new QTreeWidgetItem(Aroot, zhangsanMath);    leaf2->setIcon(0, QIcon("1.png"));    Aroot->addChild(leaf2);    QStringList B;    B << QObject::tr("B");    QTreeWidgetItem *Broot = new QTreeWidgetItem(treeWidget, B);    QStringList C;    C << QObject::tr("C");    QTreeWidgetItem *Croot = new QTreeWidgetItem(treeWidget, C);    //QTreeWidgetItem* A = new QTreeWidgetItem(treeWidget,QStringList()<<"A");    //A->setIcon(0, QIcon("1.png"));    //A->setCheckState(0, Qt::Checked);    //    QTreeWidgetItem* B = new QTreeWidgetItem(treeWidget,QStringList()<<"B");    //    B->setIcon(0, QIcon("2.png"));    //    B->setCheckState(0, Qt::Checked);    //    QTreeWidgetItem* C = new QTreeWidgetItem(treeWidget,QStringList()<<"C");    //    C->setIcon(0, QIcon("3.png"));    //    C->setCheckState(0, Qt::Checked);    treeWidget->addTopLevelItem(Aroot);    treeWidget->addTopLevelItem(Broot);    treeWidget->addTopLevelItem(Croot);    //treeWidget->setStyleSheet("QTreeWidget::item{height:25px}");    treeWidget->setGeometry(0,0,200,400);    QHBoxLayout *mainlayout = new QHBoxLayout;    mainlayout->addWidget(treeWidget);
...全文
23 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧