gpt4 book ai didi

python - 带操作的 PyQt4 下拉列表

转载 作者:行者123 更新时间:2023-11-28 17:54:21 24 4
gpt4 key购买 nike

我想在pyqt4中创建一个下拉列表,该列表在选择元素时执行操作。此外,某些选项有时可能不可用。它们应该仍在列表中,但显示为灰色。

我尝试将菜单附加到 QToolButton,但我什至看不到菜单。它是怎么做到的?

谢谢!弥敦道

最佳答案

使用弹出窗口。您可以在任何地方触发弹出窗口,使用 QMenu.exec_ 方法并传递您希望菜单出现的位置。

我创建了一个按钮,它会记住它被点击的位置,并将其连接到创建和显示弹出窗口的方法。

class MemoryButton(QPushButton):
def __init__(self, *args, **kw):
QPushButton.__init__(self, *args, **kw)
self.last_mouse_pos = None

def mousePressEvent(self, event):
self.last_mouse_pos = event.pos()
QPushButton.mousePressEvent(self, event)

def mouseReleaseEvent(self, event):
self.last_mouse_pos = event.pos()
QPushButton.mouseReleaseEvent(self, event)

def get_last_pos(self):
if self.last_mouse_pos:
return self.mapToGlobal(self.last_mouse_pos)
else:
return None

button = MemoryButton("Click Me!")

def popup_menu():
popup = QMenu()
menu = popup.addMenu("Do Action")

def _action(check):
print "Action Clicked!"

menu.addAction("Action").triggered.connect(_action)
popup.exec_(button.get_last_pos())

button.clicked.connect(popup_menu)

关于python - 带操作的 PyQt4 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3161519/

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