我想要一个下拉式类别选择框,它允许用户单击多个选择,并且最好连接到一个SQL查询。我并不特别喜欢组合框(每次点击都消失没有帮助),不管什么都可以完成任务。在
目前,我已经基本上把杰瑞装配在一起,技术上允许多种选择,但它只是基于随机的,如果鼠标被拖过它。在
self.catbx=QComboBox()
...
self.catq=QtSql.QSqlQuery(conn)
self.catq.exec("SELECT name FROM categories")
self.catmo=QtSql.QSqlQueryModel()
self.catmo.setQuery(self.catq)
self.catbx.setModel(self.catmo)
...
self.catview=QListView()
self.catview.setModel(self.catmo)
self.catbx.setView(self.catview)
self.catview.setSelectionMode(QAbstractItemView.MultiSelection)
希望这足够清楚,有人可以帮忙!:)
基本上,这些项是不可选择的,因为这是触发弹出窗口关闭的事件,所以解决方案是像我在previous answer中那样消除模型中的标志。在
另一方面,默认情况下,
QSqlQueryModel
中没有可检查的选项,因此我们必须基于另一个previous answer来实现它。在最后,创建一个继承自
QComboBox
的类,并覆盖hidePopup()
方法以发出发送所选项目的信号。在更新:
如果您想在按下项目的任何部分时也被标记,则必须创建一个委托并重写
editorEvent()
方法,以便它处理MouseButtonRelease
事件。但这带来了一个小问题:要打开弹出窗口,您必须按显示的项目,以便它将打开标记。在相关问题 更多 >
编程相关推荐