我有几个qpushbuttons和一个菜单,并试图得到一个菜单项选中的具体按钮。现在使用sender函数,我可以选择菜单项,但我需要实际的按钮来保存菜单(这里是按钮1)。在
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(400, 400))
buttons= ['button1','button2','button3']
pybutton = {}
x=0
t = 0
for i in buttons:
t = t + 100
x+=1
pybutton[str(x)] = QPushButton(i, self)
pybutton[str(x)].setObjectName('btn' + str(x))
menu = QMenu()
menu.addAction('item1',self.status)
menu.addAction('item2',self.status)
menu.addAction('item3',self.status)
menu2 = menu.addMenu('menu2')
menu2.addAction('item4')
pybutton[str(x)].setMenu(menu)
pybutton[str(x)].resize(100,100)
pybutton[str(x)].move(400-int(t),100)
pybutton[str(x)].setStyleSheet('QPushButton::menu-indicator { image: none; }')
self.statusBar()
def status(self):
sender = self.sender()
print('PyQt5 button click')
self.statusBar().showMessage(sender.text() + ' was pressed')
一种可能的解决方案是使用
setProperty()
方法将按钮作为属性传递给每个QAction,并使用property()
在槽中获得它相关问题 更多 >
编程相关推荐