gpt4 book ai didi

python - QComboBox点击事件

转载 作者:太空狗 更新时间:2023-10-30 00:43:56 25 4
gpt4 key购买 nike

我一直在尝试让 PyQt5 中的 QComboBox 从数据库表中填充。问题是试图找到一种方法来识别其上的点击事件。

在我的 GUI 中,我的组合框最初是空的,但在单击它时我希望单击事件激活我与数据库通信并填充下拉列表的方法。到目前为止,组合框的点击事件似乎没有内置的事件处理程序。我希望我在这件事上是错的。我希望有人能够告诉我有办法做到这一点。

关于我的用例,我能在这里找到的最好的文章来自这个引用 PyQt4 QComboBox 的链接:

我还找到了另一个链接,其中包含一张漂亮的 QComboBox 图片。第一个元素似乎是一个标签,后面是一个列表:

最佳答案

您可以覆盖 showPopup实现此目的的方法,无论下拉列表如何打开(即通过鼠标、键盘或快捷方式),该方法都有效:

from PyQt5 import QtCore, QtWidgets

class ComboBox(QtWidgets.QComboBox):
popupAboutToBeShown = QtCore.pyqtSignal()

def showPopup(self):
self.popupAboutToBeShown.emit()
super(ComboBox, self).showPopup()

class Window(QtWidgets.QWidget):
def __init__(self):
super(Window, self).__init__()
self.combo = ComboBox(self)
self.combo.popupAboutToBeShown.connect(self.populateConbo)
layout = QtWidgets.QVBoxLayout(self)
layout.addWidget(self.combo)

def populateConbo(self):
if not self.combo.count():
self.combo.addItems('One Two Three Four'.split())

if __name__ == '__main__':

import sys
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())

但是,对于您的特定用例,我认为更好的解决方案可能是设置 QSqlQueryModel在组合框上,以便自动从数据库更新项目。

关于python - QComboBox点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com