checkbox如果使用它们的分组,如何选择几个QButtonGroup
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'Тест'
self.resize(400, 400)
self.setFont(QFont('Times', 13))
layout =QVBoxLayout()
radiobox = QCheckBox('Ответ 1',self)
radiobox2 = QCheckBox('Ответ 2', self)
self.button_group = QButtonGroup()
self.button_group.addButton(radiobox, 1)
self.button_group.addButton(radiobox2, 2)
self.button_group.buttonClicked.connect(self.selectedchoice)
layout.addSpacing(20)
layout.addWidget(radiobox)
layout.addSpacing(20)
layout.addWidget(radiobox2)
layout.addStretch(1)
self.setLayout(layout)
self.show()
def selectedchoice(self, butt):
print(self.button_group.id(butt))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
有一个选项可以简单地为每个人checkbox做clicked.connect,但在我看来,你可以根据id方式和方式以某种方式做到这一点。QButtonGroup
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'Тест'
self.resize(400, 400)
self.setFont(QFont('Times', 13))
layout =QVBoxLayout()
self.radiobox = QCheckBox('Ответ 1',self)
self.radiobox.clicked.connect(self.selected_choice_1)
self.radiobox2 = QCheckBox('Ответ 2', self)
self.radiobox2.clicked.connect(self.selected_choice_2)
layout.addSpacing(20)
layout.addWidget(self.radiobox)
layout.addSpacing(20)
layout.addWidget(self.radiobox2)
self.setLayout(layout)
self.show()
def selected_choice_1(self, state):
if state :
print(self.radiobox.text())
def selected_choice_2(self, state):
if state :
print(self.radiobox2.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
类似于
QButtonGroup但附加到按钮的东西一个类似的问题是英文stackoverflow Using a checkbox in pyqt and How to check if a checkbox is check in pyqt