QMessageBox自定义按钮添加自定义按钮角色的方法
How to add custom button roles to custom buttons in QMessageBox
我想使用带有自定义按钮和自定义按钮角色的 QMessageBox Widget 创建一个 python GUI。我已经创建了自定义按钮,但是如何在单击按钮时将自定义角色添加到按钮。该小部件具有标准按钮角色,但我想定义自定义按钮点击功能。
请帮助我正确的代码语法。
下面是我的代码:
import sys
from PyQt4 import QtGui,QtCore
class MYGUI(QtGui.QWidget):
def __init__(self):
super(MYGUI,self).__init__()
self.setWindowTitle("GUI")
#widgets:
self.labl=QtGui.QLabel(self)
self.labl.setFont(QtGui.QFont('Calibri', 34))
#Layout:
Layout =QtGui.QVBoxLayout()
Layout.addWidget(self.labl)
Layout.addStretch()
self.setLayout(Layout)
#Actions:
Queries={'Q1':'question 1','Q2':'question2'}
for k,val in Queries.items():
self.Choice=QtGui.QMessageBox()
self.Choice.setIcon(QtGui.QMessageBox.Question)
self.Choice.setWindowTitle(k)
self.Choice.setText(val)
self.Choice.addButton(QtGui.QPushButton('BT1',self))
self.Choice.addButton(QtGui.QPushButton('BT2',self))
self.Choice.addButton(QtGui.QPushButton('BT3',self))
self.Choice.exec_()
self.show()
def main():
app=QtGui.QApplication(sys.argv)
GUI=MYGUI()
sys.exit(app.exec_())
main()
你必须使用buttonClicked
信号,这会给你发射信号的按钮-
self.Choice.addButton('BT1', QtGui.QMessageBox.YesRole)
self.Choice.addButton('BT2', QtGui.QMessageBox.YesRole)
self.Choice.addButton('BT3', QtGui.QMessageBox.YesRole)
self.Choice.buttonClicked.connect(self.onClicked)
self.Choice.exec_()
def onClicked(self, btn):
print(btn.text())
我想使用带有自定义按钮和自定义按钮角色的 QMessageBox Widget 创建一个 python GUI。我已经创建了自定义按钮,但是如何在单击按钮时将自定义角色添加到按钮。该小部件具有标准按钮角色,但我想定义自定义按钮点击功能。
请帮助我正确的代码语法。
下面是我的代码:
import sys
from PyQt4 import QtGui,QtCore
class MYGUI(QtGui.QWidget):
def __init__(self):
super(MYGUI,self).__init__()
self.setWindowTitle("GUI")
#widgets:
self.labl=QtGui.QLabel(self)
self.labl.setFont(QtGui.QFont('Calibri', 34))
#Layout:
Layout =QtGui.QVBoxLayout()
Layout.addWidget(self.labl)
Layout.addStretch()
self.setLayout(Layout)
#Actions:
Queries={'Q1':'question 1','Q2':'question2'}
for k,val in Queries.items():
self.Choice=QtGui.QMessageBox()
self.Choice.setIcon(QtGui.QMessageBox.Question)
self.Choice.setWindowTitle(k)
self.Choice.setText(val)
self.Choice.addButton(QtGui.QPushButton('BT1',self))
self.Choice.addButton(QtGui.QPushButton('BT2',self))
self.Choice.addButton(QtGui.QPushButton('BT3',self))
self.Choice.exec_()
self.show()
def main():
app=QtGui.QApplication(sys.argv)
GUI=MYGUI()
sys.exit(app.exec_())
main()
你必须使用buttonClicked
信号,这会给你发射信号的按钮-
self.Choice.addButton('BT1', QtGui.QMessageBox.YesRole)
self.Choice.addButton('BT2', QtGui.QMessageBox.YesRole)
self.Choice.addButton('BT3', QtGui.QMessageBox.YesRole)
self.Choice.buttonClicked.connect(self.onClicked)
self.Choice.exec_()
def onClicked(self, btn):
print(btn.text())