【问题标题】:Dynamic Widget List with QPushButton, QComboBox QCheckbox带有 QPushButton、QComboBox QCheckbox 的动态小部件列表
【发布时间】:2011-07-15 14:31:58
【问题描述】:

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

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 的文档不在接受的类型之列。

【问题讨论】:

    标签: c++ qt user-interface qt4


    【解决方案1】:

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

    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() 函数也可以使用。

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2018-03-14
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      相关资源
      最近更新 更多