qt如何根据输入的值创建动态控件。比如输入5创建五个label
答案:1 悬赏:70 手机版
解决时间 2021-04-17 18:37
- 提问者网友:骨子里的高雅
- 2021-04-17 02:31
qt如何根据输入的值创建动态控件。比如输入5创建五个label
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-04-17 03:34
// ----- 答案肯定是可以的 -----//
// 先创建原先的界面,用布局进行管理
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);// 加入刚才的输入组,底部添加弹簧
verLayout->addStretch();
// --------- 基本界面创建完成 -------------- //
// 关联处理动态创建
int nCnt = lineEdit->text().toInt(); // 输入的个数
for (int i = 0; i < nCnt; i++) {
QLabel *label = new QLabel(widgetMain);
// 插入之前的布局
label->setText(QString("动态创建label %1).arg(i + 1));
verLayout->insertWidget(1 + i, label);
}
// 大功告成
// 备注,以上代码纯手工,写法或其他错误请自行修改,仅作参考
// 先创建原先的界面,用布局进行管理
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);// 加入刚才的输入组,底部添加弹簧
verLayout->addStretch();
// --------- 基本界面创建完成 -------------- //
// 关联处理动态创建
int nCnt = lineEdit->text().toInt(); // 输入的个数
for (int i = 0; i < nCnt; i++) {
QLabel *label = new QLabel(widgetMain);
// 插入之前的布局
label->setText(QString("动态创建label %1).arg(i + 1));
verLayout->insertWidget(1 + i, label);
}
// 大功告成
// 备注,以上代码纯手工,写法或其他错误请自行修改,仅作参考
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯