带有 QPushButton、QComboBox QCheckbox 的动态小部件列表

发布于 2024-11-23 21:06:18 字数 727 浏览 3 评论 0原文

我想创建一个列表,该列表中的每一行包含:

LineNo | Edit Model  | Model Select | Log enabl | freq      | selection |
1      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
2      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
3      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
|             |            |              |          |           |      |
n      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |

该列表是动态的,我总共有 36 个模型,但仅应根据已做出的选择来表示其中的一部分。用户应该能够后悔之前的任何选择并重新绘制此列表。

我一直在研究 QListView、QTableWidget、Delegates,但我似乎找不到任何关于如何将 QPushButton 实现到 QListView 或 QTableWidget 中的示例或教程。查看 QItemDeligate 的文档 QPushButton 不属于可接受的类型。

I'd like to create a list, each row in this list contains:

LineNo | Edit Model  | Model Select | Log enabl | freq      | selection |
1      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
2      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
3      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
|             |            |              |          |           |      |
n      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |

This list is dynamic, i have a total of 36 models but only a selection of these should be represented depending on choices that has been made. The user sould be able to regret any earlier choices and redraw this list.

I have been looking at QListView, QTableWidget, Delegates, but i cant seem to find any examples or turorials on how to implement QPushButton into either QListView or QTableWidget. Looking at the documentation of QItemDeligate QPushButton are not among the accepted types.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日落 2024-11-30 21:06:18

我相信您正在寻找以下功能之一(取决于您使用的视图类):

QTableWidget::setCellWidget( int, row, int column, QWidget *widget );
QTreeWidget::setItemWidget( QTreeWidgetItem *item, int column, QWidget *widget );
QListWidget::setItemWidget( QListWidgetItem *item, QWidget *widget );

这将允许您在所需位置显示任意小部件,无需与委托进行混杂。

请注意,这些函数仅在这些视图的“Widget”版本中可用(例如 QTreeWidget,而不是 QTreeView)。然而,QAbstractItemView 中有一个 setIndexWidget() 函数也可以使用。

I believe you're looking for one of the following functions (depending on which view class you're using):

QTableWidget::setCellWidget( int, row, int column, QWidget *widget );
QTreeWidget::setItemWidget( QTreeWidgetItem *item, int column, QWidget *widget );
QListWidget::setItemWidget( QListWidgetItem *item, QWidget *widget );

This will allow you to display an arbitrary widget in the desired location, no mucking with delegates required.

Note that these functions are only available in the "Widget" versions of these views (e.g. QTreeWidget as opposed to QTreeView). However there is a setIndexWidget() function in QAbstractItemView that can be used as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文