QTableView/QTableWidget 中的类似 Ktorrent 的小部件
Posted
技术标签:
【中文标题】QTableView/QTableWidget 中的类似 Ktorrent 的小部件【英文标题】:Ktorrent-like widgets in QTableView/QTableWidget 【发布时间】:2012-03-13 18:01:23 【问题描述】:是否有任何文档说明如何将自定义 QWidget 容器(与布局、复选框、按钮等其他内容)放在 QTableView/QTableWidget 中,如图所示?
我正在浏览 ktorrent 的源代码,看看它是如何完成的。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:对于QTableWiget 使用
void QTableWidget::setCellWidget (int row, int column, QWidget *widget)
在你的情况下:
class MyWidget : public QWidget
// a composite widget with layouts and other stuff
;
setCellWidget(0, 0, new MyWidget);
在QTableView 的情况下,您必须定义您的自定义委托并将其设置(例如)用于特定列:
void QAbstractItemView::setItemDelegateForColumn (int column, QAbstractItemDelegate * delegate)
Check this out 获取表格中的 QProgressBar 示例
【讨论】:
还有多个复选框、lineEdits 和按钮?这些也是行的一部分 O_o 你可以把任何QWidget作为表格单元格 我想我已经看到了他们是如何做到的。他们在绘制事件期间将小部件直接放在行的父容器中。有点棘手……以上是关于QTableView/QTableWidget 中的类似 Ktorrent 的小部件的主要内容,如果未能解决你的问题,请参考以下文章
QTableView/QTableWidget 中的类似 Ktorrent 的小部件
如何将数据发送到 QTableView/QTableWidget (PyQt)
QTableView/QTableWidget 网格样式表 - 网格线宽