一个可能的选择是使用
QActionGroup和激活
exclusive属性
import sysfrom PyQt5.QtWidgets import *class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) menu = self.menuBar() paymentType = QMenu('Payment Type', self) group = QActionGroup(paymentType) texts = ["Cash", "Noncash Payment", "Cash on Delivery", "Bank Transfer"] for text in texts: action = QAction(text, paymentType, checkable=True, checked=text==texts[0]) paymentType.addAction(action) group.addAction(action) group.setExclusive(True) group.triggered.connect(self.onTriggered) menu.addMenu(paymentType) def onTriggered(self, action): print(action.text())if __name__ == '__main__': app = QApplication(sys.argv) w = MainWindow() w.show() sys.exit(app.exec_())


