我有一个使用 QT Designer 创建的 QDialog,如下所示:
左边的服务器列表是一个带有 QStringListModel 的 QListView。通过将视图的激活(QModelIndex)信号连接到对话框中的槽函数,鼠标单击列表视图中的项目更新表单,并使用所选项目的信息。
但是,在键盘上按向上或向下也会更改所选项目,但不会发出任何信号,因此不会更新表单以匹配所选项目。如何解决这个问题?
原文由 x-x 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个使用 QT Designer 创建的 QDialog,如下所示:
左边的服务器列表是一个带有 QStringListModel 的 QListView。通过将视图的激活(QModelIndex)信号连接到对话框中的槽函数,鼠标单击列表视图中的项目更新表单,并使用所选项目的信息。
但是,在键盘上按向上或向下也会更改所选项目,但不会发出任何信号,因此不会更新表单以匹配所选项目。如何解决这个问题?
原文由 x-x 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
4 回答4.5k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.3k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
activated(QModelIndex)
信号实际上指的不仅仅是选择的行为。这个概念相当模糊,但它更像是一种明确的选择行为。如果您只是在寻找有关当前选择已更改的通知,您可以获取选择模型并连接到其更新。在上面的代码中,应将
displayModelIndexInMyView(QModelIndex)
替换为您当前的处理程序插槽activated(QModelIndex)
和clearMyView()
替换为您在没有任何内容时想要执行的任何操作选择。有很多方法可以做到这一点,老实说,我不确定什么是规范的,但我认为这对你有用。