【问题标题】:Qt Style QRadioButton label?Qt 样式 QRadioButton 标签?
【发布时间】:2020-03-17 18:50:12
【问题描述】:

有没有办法设置 QRadioButton 标签的样式?具体来说,我想将标签移到顶部,从这里开始:

到这里:

后者已在 tkinter 中完成。

【问题讨论】:

    标签: python pyqt qradiobutton


    【解决方案1】:

    您可以通过在QHBoxLayout 中使用QVBoxLayoutQLabel 来实现此目的。

    from PyQt5.QtWidgets import (
        QLabel, QRadioButton, QVBoxLayout, QHBoxLayout,
        QApplication, QWidget
    )
    import sys
    
    class Window(QWidget):
        def __init__(self):
            QWidget.__init__(self)
            self.layout = QHBoxLayout()
            self.setLayout(self.layout)
    
            self.vlayout1 = QVBoxLayout()
            self.label1 = QLabel("HW")
            self.radiobutton1 = QRadioButton()
            self.radiobutton1.setChecked(True)
            self.radiobutton1.toggled.connect(self.onClicked)
            self.vlayout1.addWidget(self.label1)
            self.vlayout1.addWidget(self.radiobutton1)
            self.layout.addLayout(self.vlayout1)
    
            self.vlayout2 = QVBoxLayout()
            self.label2 = QLabel("SW")
            self.radiobutton2 = QRadioButton()
            self.radiobutton2.toggled.connect(self.onClicked)
            self.vlayout2.addWidget(self.label2)
            self.vlayout2.addWidget(self.radiobutton2)
            self.layout.addLayout(self.vlayout2)
    
        def onClicked(self):
            radioButton = self.sender()
            if radioButton.isChecked():
                print("Radio button clicked")
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        screen = Window()
        screen.show()
        sys.exit(app.exec_())
    

    【讨论】:

    • 请原谅我的挑剔,但我最初并没有这样做,因为即使单选按钮上没有附加标签,您也可以看到它们仍然为它分配了一个边距,导致一切都偏离中心。完全重新定位这个边距可以解决这个问题,但也可以通过样式修复来消除它。 IIRC 负右边距不适用于此。
    • 没关系,@Laif。我会考虑使用addStretch 和/或addSpacerItem
    • 这些有什么帮助?
    • @Laif 给按钮一个固定的宽度,所以它不会水平扩展:button.setFixedWidth(button.sizeHint().height())
    • @Laif 对我来说很好。当我对上面显示的示例代码进行建议的更改时,它看起来与您问题中显示的第二张图片完全相同。
    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 2020-04-26
    • 2014-08-15
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2016-01-29
    相关资源
    最近更新 更多