Qt中在什么控件里能动态增长式的添加widget窗口

Qt中在什么控件里能动态增长式的添加widget窗口,第1张

很简单,只需要在窗口中拖进一个QScrollArea控件,然后再将一个QWidget控件拖动到QScrollArea控件中成为它的子控件,这样只需要在程序中将新建的控件(父节点要设为这个QWidget),通过setGeometry函数将位置设置在QWidget上,注意当控件位置超出QScrollArea时,要将这个QWidget的size最初相应的拉长,拉大,这样QScrollArea就会自动添加一个滚动条了。

还是不懂的话请留言,方便咨询。

// ----- 答案肯定是可以的 -----//

// 先创建原先的界面,用布局进行管理

QWidget *widgetMain = new QWidget()

// 加入一个输入框和按钮

QLineEdit *lineEdit = new QLineEdit(widgetMain)

QPushButton *btn = new QPushButton(widgetMain)

// 用水平布局将这2个控件框起,并且置于界面顶部

QHBoxLayout *horLayout = new QHBoxLayout()

horLayout->addWidget(lineEdit, 4)

horLayout->addWidget(btn, 1) // 设置布局比例为4:1

// 然后添加一个全局布局控件

QVBoxLayout *verLayout = new QVBoxLayout(widgetMain)

verLayout->addLayout(horLayout)// 加入刚才的输入组,底部添加d簧

verLayout->addStretch()

// --------- 基本界面创建完成 -------------- //

// 关联处理动态创建

int nCnt = lineEdit->text().toInt()// 输入的个数

for (int i = 0i <nCnti++) {

QLabel *label = new QLabel(widgetMain)

// 插入之前的布局

label->setText(QString("动态创建label %1).arg(i + 1))

verLayout->insertWidget(1 + i, label)

}

// 大功告成

// 备注,以上代码纯手工,写法或其他错误请自行修改,仅作参考

QGridLayout *layout = new QGridLayout

layout->setContentsMargins(0, 24, 0, 0)

tabWidget = new QTabWidget

tabWidget->addTab(new t1(), tr("t1"))

tabWidget->addTab(new t2(), tr("t2"))

QScrollArea *scrollArea = new QScrollArea

scrollArea->setWidget(tabWidget)

layout->addWidget(scrollArea)

setLayout(layout)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11661323.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存