QSplitter-窗口分割器 - 拉伸控件
想要实现主窗口内的控件可以跟随鼠标随意拉伸缩放,可以通过该控件实现。
/***3.先水平,后垂直****/
QHBoxLayout *pHBox = new QHBoxLayout(this);
QSplitter *pSplitter = new QSplitter(Qt::Orientation::Horizontal, this);//水平
pSplitter->setStyleSheet("QSplitter:handle{background-color:grey}");
QLabel* labelFile = new QLabel("文件目录:");
QLineEdit* lineFile = new QLineEdit("路径");
labelFile->setFixedSize(60,30);
lineFile->setFixedHeight(30);
pSplitter->addWidget(labelFile);
pSplitter->addWidget(lineFile);
QSplitter *pSplitter1 = new QSplitter(Qt::Orientation::Horizontal, this);//水平
pSplitter1->addWidget(new QTreeWidget());
pSplitter1->addWidget(new QTreeWidget());
pSplitter1->setStretchFactor(0,2);
pSplitter1->setStretchFactor(1,4);
QSplitter *pSplitter2 = new QSplitter(Qt::Orientation::Horizontal, this);//水平
QLabel* labelFileName = new QLabel("文件名字:");
QLineEdit* lineFileName = new QLineEdit("路径1");
labelFileName->setFixedSize(60,30);
lineFileName->setFixedHeight(30);
pSplitter2->addWidget(labelFileName);
pSplitter2->addWidget(lineFileName);
QSplitter *pSplitter3 = new QSplitter(Qt::Orientation::Horizontal, this);//水平
QLabel* labelFileType = new QLabel("文件类型:");
QLineEdit* lineFileType = new QLineEdit("路径2");
labelFileType->setFixedSize(60,30);
labelFileType->setFixedHeight(30);
pSplitter3->addWidget(labelFileType);
pSplitter3->addWidget(lineFileType);
QSplitter *pSplitterV = new QSplitter(Qt::Orientation::Vertical, this);//垂直
pSplitterV->addWidget(pSplitter);
pSplitterV->addWidget(pSplitter1);
pSplitterV->addWidget(pSplitter2);
pSplitterV->addWidget(pSplitter3);
pHBox->addWidget(pSplitterV);
效果图
其中可以设置比例:setStretchFactor方法
QSplitter *pSplitter1 = new QSplitter(Qt::Orientation::Horizontal, this);
pSplitter1->addWidget(new QTreeWidget());
pSplitter1->addWidget(new QTreeWidget());
pSplitter1->setStretchFactor(0,2);
pSplitter1->setStretchFactor(1,4);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)