隐藏和显示功能,我该如何解决?

时间:2019-11-23 19:01:37

标签: python pyqt5

我对隐藏功能有疑问。

我有: 2个按钮sns.boxplot(y=df['int_value']) sns.swarmplot(y=df['int_value'], x=df['boolean_value'][df['boolean_value']==True], color='black', label='only True') plt.xticks([0], ['']) plt.xlabel('True/False Boxplot Distribution') plt.legend() plt.show() df.describe() int_value count 140.000000 mean 524.828022 std 302.097860 min 1.566518 25% 240.890088 50% 567.986782 75% 778.906109 max 995.508649 df.groupby('boolean_value').describe() int_value count mean std min 25% 50% 75% max boolean_value False 70.0 525.125956 291.117406 1.566518 247.411473 577.119686 770.783246 995.508649 True 70.0 524.530087 314.800514 8.077607 233.074629 550.306306 828.866101 993.770101

2个标签分别为图像Button_Zeritifikat1Button_Zertifikat2

2个标签,显示页码(德语)labal_zertifikat1label_Zeritifikat2

如果我启动我的应用程序,它将显示第一张图片和第一张阴唇,其中显示页码。

如果我按我的按钮,它会显示label_seite2,但不会隐藏label_seite1,所以我的问题是,“。hide”函数是否错误?如何隐藏label_seite2?

其防雷窗

label_seite1

1 个答案:

答案 0 :(得分:2)

主要问题在于,每当您按下按钮时,都将创建新的QLabel。取而代之的是,您只能创建一次QLabels,并且只隐藏必要的QLabels。

class Ui_Zertifikat(object):
    def setupUi(self, WindowZertifikat):
        self.myWindowZertifikat = WindowZertifikat
        WindowZertifikat.setObjectName("Form")
        WindowZertifikat.setGeometry(300, 300, 822, 566)

        self.label_Zertifikat1 = QtWidgets.QLabel(WindowZertifikat)
        self.label_Zertifikat1.setGeometry(0, 0, 822, 494)
        self.label_Zertifikat1.setPixmap(QPixmap("./image/speichern.png"))

        self.label_seite1 = QtWidgets.QLabel(self.myWindowZertifikat)
        self.label_seite1.setGeometry(361, 495, 100, 30)
        self.label_seite1.setText("Seite 1 von 2")
        self.label_seite1.setStyleSheet(
            "QLabel{color:Black; font-size:11pt; font-weight:550}"
        )

        self.label_Zertifikat2 = QtWidgets.QLabel(self.myWindowZertifikat)
        self.label_Zertifikat2.setGeometry(0, 0, 822, 494)
        self.label_Zertifikat2.setPixmap(QPixmap("./image/umbenennen.png"))

        self.label_seite2 = QtWidgets.QLabel(self.myWindowZertifikat)
        self.label_seite2.setGeometry(361, 495, 100, 30)
        self.label_seite2.setText("Seite 2 von 2")
        self.label_seite2.setStyleSheet(
            "QLabel{color:Black; font-size:11pt; font-weight:550}"
        )

        self.Button_Zertifikat1 = QtWidgets.QPushButton(self.myWindowZertifikat)
        self.Button_Zertifikat1.setGeometry(422, 530, 130, 30)
        self.Button_Zertifikat1.setText("Nächste Seite")
        self.Button_Zertifikat1.setStyleSheet(
            "QPushButton{background-color: #0000FF; border-width: 2px; border-style: solid; border-color: Black; color:white; font-size:10pt; font-weight:500}"
            "QPushButton:hover{background-color: #08088A; border-width: 2px; border-style: solid; border-color: Black}"
        )

        self.Button_Zertifikat2 = QtWidgets.QPushButton(self.myWindowZertifikat)
        self.Button_Zertifikat2.setGeometry(270, 530, 130, 30)
        self.Button_Zertifikat2.setText("Vorherige Seite")
        self.Button_Zertifikat2.setStyleSheet(
            "QPushButton{background-color: #0000FF; border-width: 2px; border-style: solid; border-color: Black; color:white; font-size:10pt; font-weight:500}"
            "QPushButton:hover{background-color: #08088A; border-width: 2px; border-style: solid; border-color: Black}"
        )

        self.Button_Zertifikat1.clicked.connect(lambda: self.ZertifikatSeiten(0))
        self.Button_Zertifikat2.clicked.connect(lambda: self.ZertifikatSeiten(1))

        self.ZertifikatSeiten(1)

    def ZertifikatSeiten(self, b):
        if b == 0:
            self.label_Zertifikat2.show()
            self.label_seite2.show()
            self.label_Zertifikat1.hide()
            self.label_seite1.hide()

        elif b == 1:
            self.label_Zertifikat1.show()
            self.label_seite1.show()
            self.label_Zertifikat2.hide()
            self.label_seite2.hide()

另一种更简单的解决方案是仅更改文本和QPixmap,而无需创建n个QLabels

class Ui_Zertifikat(object):
    def setupUi(self, WindowZertifikat):
        self.myWindowZertifikat = WindowZertifikat
        WindowZertifikat.setObjectName("Form")
        WindowZertifikat.setGeometry(300, 300, 822, 566)

        self.label_Zertifikat1 = QtWidgets.QLabel(WindowZertifikat)
        self.label_Zertifikat1.setGeometry(0, 0, 822, 494)
        self.label_Zertifikat1.setPixmap(QPixmap("./image/speichern.png"))

        self.label_seite1 = QtWidgets.QLabel(self.myWindowZertifikat)
        self.label_seite1.setGeometry(361, 495, 100, 30)
        self.label_seite1.setText("Seite 1 von 2")
        self.label_seite1.setStyleSheet(
            "QLabel{color:Black; font-size:11pt; font-weight:550}"
        )

        self.Button_Zertifikat1 = QtWidgets.QPushButton(self.myWindowZertifikat)
        self.Button_Zertifikat1.setGeometry(422, 530, 130, 30)
        self.Button_Zertifikat1.setText("Nächste Seite")
        self.Button_Zertifikat1.setStyleSheet(
            "QPushButton{background-color: #0000FF; border-width: 2px; border-style: solid; border-color: Black; color:white; font-size:10pt; font-weight:500}"
            "QPushButton:hover{background-color: #08088A; border-width: 2px; border-style: solid; border-color: Black}"
        )

        self.Button_Zertifikat2 = QtWidgets.QPushButton(self.myWindowZertifikat)
        self.Button_Zertifikat2.setGeometry(270, 530, 130, 30)
        self.Button_Zertifikat2.setText("Vorherige Seite")
        self.Button_Zertifikat2.setStyleSheet(
            "QPushButton{background-color: #0000FF; border-width: 2px; border-style: solid; border-color: Black; color:white; font-size:10pt; font-weight:500}"
            "QPushButton:hover{background-color: #08088A; border-width: 2px; border-style: solid; border-color: Black}"
        )

        self.Button_Zertifikat1.clicked.connect(lambda: self.ZertifikatSeiten(0))
        self.Button_Zertifikat2.clicked.connect(lambda: self.ZertifikatSeiten(1))

        self.ZertifikatSeiten(1)

    def ZertifikatSeiten(self, b):
        if b == 0:
            self.label_Zertifikat1.setText("Seite 2 von 2")
            self.label_seite1.setPixmap(QPixmap("./image/umbenennen.png"))

        elif b == 1:
            self.label_Zertifikat1.setText("Seite 1 von 2")
            self.label_seite1.setPixmap(QPixmap("./image/speichern.png"))