如何删除pyqt5中单选按钮之间的space

How to remove space between radiobuttons in pyqt5

如何去除男性和女性单选按钮之间的填充? 这是我的代码:

def UiComponents(self):
        self.gridbox=QGridLayout()
        self.label=QLabel("What's Your Gender?")
        self.r1=QRadioButton("Male")
        self.r2=QRadioButton("Female")
        self.r3=QRadioButton("Rather Not To Say")
        self.button=QPushButton("Submit")
        self.gridbox.addWidget(self.label,0,0)
        self.gridbox.addWidget(self.r1,1,0)
        self.gridbox.addWidget(self.r2,1,1)
        self.gridbox.addWidget(self.r3,1,2)
        self.gridbox.addWidget(self.button,2,0)
        self.setLayout(self.gridbox)
        self.show()

尝试在 setStyleSheet() 方法中更改 spacing 属性

r1.setStyleSheet("""
       QRadioButton {
          spacing : 20px; #(<- example value)
       }
""")

QGridLayout 的工作方式类似于 html table - 你有列和行,列宽等于列中更宽的小部件,在你的情况下它是标签。为避免拉伸第一列,使用 addWidgetcolumnSpan 参数(以及按钮)跨越所有列的标签。

self.gridbox.addWidget(self.label,0,0,1,3)
...
self.gridbox.addWidget(self.button,2,0,1,3)

我会推荐使用 QtDesigner 来创建 ui,它节省了大量的时间和精力,而且所见即所得。