Qt如何动态删除、添加控件?

skyjsq 2009-11-25 04:43:36
描述:想在程序中动态的添加n行:行包括一个lineEdit输入框和一个Delete Button,
而且button的操作为:删除其所在的行的lineEdit 和button

我知道在Wpf中,通过重写ListBox的DataTemplate可以做到。。。刚开始学习Qt,多指教~~·
...全文
1965 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyjsq 2009-11-26
  • 打赏
  • 举报
回复
可以完成动态添加和删除了,还有个问题如何在Layout中重新布局剩余的控件?
skyjsq 2009-11-26
  • 打赏
  • 举报
回复
多谢,我试一下。
skyjsq 2009-11-26
  • 打赏
  • 举报
回复
呵呵,我再研究下,把分给你啦,多谢
rcyboom 2009-11-26
  • 打赏
  • 举报
回复
你删除的时候它自己不update么?如果没有试试这个函数,如果还是不行是不是之前指定了坐标的原因?可以试着使用vertical layout和horizontal layout组合起来试试看,这个肯定是按照组件自动增减得。
先把lineedit和button来个水平layout,再将这个layout加到垂直layout中。
我也是新手,呵呵。
rcyboom 2009-11-25
  • 打赏
  • 举报
回复
void MainWindow::on_pushButton_clicked()
{
QGridLayout * mainLayout= new QGridLayout(ui->groupBox_2);
QLineEdit *tl;
QPushButton *tb;
for(int i=0;i<3;i++)
{
tl=new QLineEdit(ui->groupBox_2);
tb=new QPushButton(tr("newbutton%1").arg(i),ui->groupBox_2);
//可以在此连接button的事件处理信号槽
mainLayout->addWidget(tl, i, 0);
mainLayout->addWidget(tb, i, 1);
}
ui->groupBox_2->setLayout(mainLayout);
}

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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