PyQt5 – 如何隐藏标签 | label.setHidden方法

  • Post category:Python

PyQt5是Python语言的GUI框架,是构建桌面应用程序的绝佳工具。在GUI中,标签/标识(Label)是非常常见的控件,它一般用于文字、图标、图片等的展示。但有时候,我们需要在程序运行的过程中隐藏这个标签,此时可以使用PyQt5的setHidden()方法。

关于label.setHidden()方法

label.setHidden()方法是一种PyQt5中用于控制标签控件是否显示的方法。这个方法需要一个Boolean类型的参数,如果参数为True,则标签控件会被隐藏;如果参数为False,则标签控件会被显示。

使用方法

在PyQt5中,可以使用以下代码来隐藏标签:

label.setHidden(True)

同样,如果你想要显示标签,可以使用以下代码:

label.setHidden(False)

需要注意的是,这个方法只对标签控件有效,并且该控件需要事先被创建并显示出来。

示例说明

以下是两条示例,演示了如何在PyQt5中使用setHidden()方法来控制标签控件的显示和隐藏。

示例1

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QPushButton

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('PyQt5 - setHidden方法')
        self.setGeometry(300, 300, 300, 200)

        label = QLabel('隐藏/显示标签', self)
        label.move(100, 30)

        button = QPushButton('显示/隐藏', self)
        button.move(100, 70)
        button.clicked.connect(lambda: label.setHidden(not label.isHidden()))

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

这个示例中,我们创建了一个QWidget窗口,并在其上面添加了一个标签和一个按钮。在按钮的点击事件中,我们会将标签的显示状态切换一次。

示例2

import sys
from PyQt5.QtWidgets import QApplication, QLabel, QGridLayout, QPushButton

class Example:
    def __init__(self):
        self.app = QApplication(sys.argv)
        self.initUI()

    def initUI(self):
        self.window = QLabel()
        self.window.setWindowTitle('PyQt5 - setHidden方法')
        self.window.setGeometry(300, 300, 300, 200)

        label1 = QLabel('标签一', self.window)
        label1.move(20, 20)

        label2 = QLabel('标签二', self.window)
        label2.move(20, 50)

        label3 = QLabel('标签三', self.window)
        label3.move(20, 80)

        button = QPushButton('隐藏/显示', self.window)
        button.move(20, 110)
        button.clicked.connect(lambda: self.toggleLabel(label2))

        layout = QGridLayout()
        layout.addWidget(label1, 0, 0)
        layout.addWidget(label2, 1, 0)
        layout.addWidget(label3, 2, 0)
        layout.addWidget(button, 3, 0)

        self.window.setLayout(layout)
        self.window.show()

    def toggleLabel(self, label):
        label.setHidden(not label.isHidden())

    def run(self):
        sys.exit(self.app.exec_())

if __name__ == '__main__':
    ex = Example()
    ex.run()

这个示例中,我们创建了一个QLabel窗口,并在其上面添加了三个标签和一个按钮。在按钮的点击事件中,我们会将标签2的显示状态切换一次。同时,我们还展示了如何使用布局来管理标签控件的位置。