可以取消选择组框中的单个单选按钮

Single radiobutton in groupbox can be deselected

我试图搜索相应的主题,但我找不到,所以我来了。 我在 Python 和 PyQt4 中创建了一个应用程序,我可以在其中从文件导入一些数据。在导入过程中,我在其中动态创建了一些组框和单选按钮,供用户显示所需的数据。由于收集的数据,可能会发生一个组框只有一个单选按钮的情况。

问题是,当用户点击这个已经 selected-all-alone 单选按钮时,它被取消selected(中间没有黑点)。再次单击它 select 再次...

这是一个错误还是我应该设置一个 属性 以便这种行为不会发生(这意味着该按钮永远不会被取消select,因为它在组框中是单独的)?

如何防止这种行为?

示例(已添加)

import sys
from PyQt4 import QtCore, QtGui

class MyApp(QtGui.QMainWindow):
    def __init__(self):
        super(MyApp, self).__init__()
        self.resize(289, 171)
        self.centralwidget = QtGui.QWidget(self)
        self.setCentralWidget(self.centralwidget)
        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
        self.groupBox = QtGui.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(0, 0, 100, 100))
        self.groupBox.setTitle("GroupBox")
        self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 1)
        self.radioButton = QtGui.QRadioButton(self.groupBox)
        self.radioButton.setGeometry(QtCore.QRect(20, 60, 82, 17))
        self.radioButton.setChecked(True)
        self.radioButton.setAutoExclusive(True)
        self.radioButton.setText("RadioButton")
        self.gridLayoutRb = QtGui.QGridLayout(self.groupBox)
        self.gridLayoutRb.addWidget(self.radioButton, 0,0,1,1)
        self.show()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    app.setStyle(QtGui.QStyleFactory.create('cleanlooks'))
    window = MyApp()
    out_msg = app.exec_()
    sys.exit(out_msg)

正如@ekhumoro 所建议的那样,可以禁用单选按钮,因为只有一个按钮。缺点是按钮及其文本是灰色的。如果这不是问题,那就是解决方案。

另一种方法是在groupBox中永久添加一个radionbutton,然后设置其坐标(通过将其属性更改为负值)将其置于groupBox之外。当不使用布局.

时,这可能