PyQt5 – 隐藏单选按钮

  • Post category:Python

PyQt5 – 隐藏单选按钮

在PyQt5中,隐藏单选按钮的方法一般有两种:使用setVisible()函数和设置styleSheet。

使用setVisible()函数

setVisible()函数可以用来设置某个控件是否可见。通过将单选按钮的setVisible()函数设置为False,就可以将其隐藏。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        maleRBtn = QRadioButton('Male', self)
        femaleRBtn = QRadioButton('Female', self)

        maleRBtn.toggled.connect(lambda:checked(maleRBtn))
        femaleRBtn.toggled.connect(lambda:checked(femaleRBtn))

        vbox = QVBoxLayout()
        vbox.addWidget(maleRBtn)
        vbox.addWidget(femaleRBtn)

        self.setLayout(vbox)

        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('Hide a Radio Button')
        self.show()

    def checked(rbtn):
        if rbtn.isChecked():
            print(rbtn.text())
            if rbtn.text() == 'Female':
                rbtn.setVisible(False)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在上面的代码中,我们创建了两个单选按钮:一个是’Male’,一个是’Female’。将它们添加到了垂直布局中,设置了一个toggled信号用于指定选项变化时的响应函数。然后对于响应函数,如果选中‘Female’,就将其对应的单选按钮隐藏。

使用setStyleSheet

setStyleSheet方法可以用于更改控件的样式。通过将单选按钮的样式表设置为QRadioButton::indicator{width: 0;},就可以将其隐藏。例如:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        maleRBtn = QRadioButton('Male', self)
        femaleRBtn = QRadioButton('Female', self)

        maleRBtn.toggled.connect(lambda:checked(maleRBtn))
        femaleRBtn.toggled.connect(lambda:checked(femaleRBtn))

        vbox = QVBoxLayout()
        vbox.addWidget(maleRBtn)
        vbox.addWidget(femaleRBtn)

        self.setLayout(vbox)

        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('Hide a Radio Button')
        self.show()

    def checked(rbtn):
        if rbtn.isChecked():
            print(rbtn.text())
            if rbtn.text() == 'Female':
                rbtn.setStyleSheet('QRadioButton::indicator{width: 0;}')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在上面的代码中,我们创建了两个单选按钮:一个是’Male’,一个是’Female’。将它们添加到了垂直布局中,设置了一个toggled信号用于指定选项变化时的响应函数。然后对于响应函数,如果选中‘Female’,就将其对应的单选按钮隐藏。

这些都是隐藏单选按钮的方法,可以根据自己的需要进行选择和使用。