次のスレッドに触発されました: PyQt: How to set Combobox Items be Checkable?
QToolButton を使用し、addAction を使用してチェック可能な項目を追加することで、単純なチェック可能な「コンボボックス」を作成できました。簡単なコード例を参照してください:
from PyQt4 import QtCore, QtGui
import sys
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(198, 157)
self.toolButton = QtGui.QToolButton(Dialog)
self.toolButton.setGeometry(QtCore.QRect(60, 50, 71, 19))
self.toolButton.setObjectName("toolButton")
self.toolButton.setText("MyButton")
QtCore.QMetaObject.connectSlotsByName(Dialog)
class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.toolMenu = QtGui.QMenu(self.ui.toolButton)
for i in range(3):
action = self.toolMenu.addAction("Category " + str(i))
action.setCheckable(True)
self.ui.toolButton.setMenu(self.toolMenu)
self.ui.toolButton.setPopupMode(QtGui.QToolButton.InstantPopup)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()
myapp.show()
sys.exit(app.exec_())
しかし、ダイアログでチェックされた QToolButton アクション (つまり、カテゴリ 1および/またはカテゴリ 2/3 ) をどのようにキャプチャできますか?