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 网格样式表 - 网格线宽

qt QTableView/QTableWidget样式设置

Qt QTableWidget的用法

ppwjs之前端达人