QT的Qtablewidget中,想把一个button放在两个单元格中

yingzijuntuan 2014-09-10 11:51:12
代码如下:

	QApplication a(argc, argv);
Qt_test w;
QTableWidget * table = new QTableWidget(&w);
table->setRowCount(1);
table->setColumnCount(3);
table->setGeometry(QRect(30,30,340,140));
QPushButton * btn = new QPushButton("btn1");
table->setCellWidget(0,1,btn);
//
// table->removeRow(0);
// table->setRowCount(3);
table->setCellWidget(0,1,btn);
w.show();
return a.exec();


发现在同一个单元格,插入两次button,最后的table中没有显示按键
...全文
651 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
foruok 2014-09-10
  • 打赏
  • 举报
回复
QWidget * w = new QWidget(); QHBoxLayout *layout = new QHBoxLayout(w); layout->addWidget(btn); layout->addWidget(btn2); tabel->setCellWidget(0, 1, w);
yingzijuntuan 2014-09-10
  • 打赏
  • 举报
回复
引用 1 楼 foruok 的回复:
一个单元格只能插入一个Widget,如果想插入多个,请用一个顶层Widget管理多个子widget。 另外你调用setCellWidget时,之前设置的可能会被删除掉,你两次调用,使用同一个btn,第二次调用导致btn指向的对象被删除,所以显示不出来了。
能举个例子吗? 上面的代码是我总结起来的问题,实际的问题比这个稍微复杂一些。我有一些button(PS:我重写了这个类,里面有一些其他属性),所以我需要把这些button贴在很多地方,但是,由于button有很多自己的属性,所以我不能每次都new出来,你说的方法能不能给一小段代码?
foruok 2014-09-10
  • 打赏
  • 举报
回复
setCellWidget会将Widget的所有权转移给QTableWidget,不能把一个Widget设置给两个不同的单元格,否则析构时会挂掉。
foruok 2014-09-10
  • 打赏
  • 举报
回复
一个单元格只能插入一个Widget,如果想插入多个,请用一个顶层Widget管理多个子widget。

另外你调用setCellWidget时,之前设置的可能会被删除掉,你两次调用,使用同一个btn,第二次调用导致btn指向的对象被删除,所以显示不出来了。

16,817

社区成员

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

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