当 QListView 由 QComboBoxes 填充时获取信号

Posted

技术标签:

【中文标题】当 QListView 由 QComboBoxes 填充时获取信号【英文标题】:Getting a signal to a QListView when its populated by QComboBoxes 【发布时间】:2013-04-01 23:32:47 【问题描述】:

我正在开发一个 UI,它可以读取数据库并在其中的项目发生更改时将其更新回来。我的 UI 包含一个 QListView,它由 QComboBoxes 填充。现在,我可以在组合框项更改时收到信号(尽管我无法获取已更改的小部件项的索引),并且我需要让父列表视图知道成员小部件的值已更改。关于如何让它发挥作用的任何想法?

【问题讨论】:

【参考方案1】:

获取小部件索引的一个简单技巧是将小部件索引编码到每个组合框项目的项目数据中。您可以将 QString 设置为 itemData ,它编码对您的标准项目数据和小部件索引的引用,例如

pComboBox1->setItemText(1, "Item 1");
pComboBox1->setItemData(1, "1-1"); 
pComboBox1->setItemData(2, "Item 2");
pComboBox1->setItemData(2, "2-1"); // Item 2 in 1st combo box
pComboBox2->setItemText(1, "Item 1");
pComboBox2->setItemData(1, "1-2"); // Item 1 in 2nd combo box
// and so on

【讨论】:

是的,这就是我们最终要做的,尽管我们使用了指向项目数据对象的指针。谢谢!

以上是关于当 QListView 由 QComboBoxes 填充时获取信号的主要内容,如果未能解决你的问题,请参考以下文章

Qt - 如何将 QListView 项目转移到另一个 QListView?

在 Qt 中找不到 Qlistview Selectionchanged 事件?

Qt入门系列开发教程高级控件篇QListview列表视图

QListView 在列表为空时显示文本

PyQt:QListView 拖放重新排序信号问题

调整大小时 QListView 图标模式不重新布局