PyQt: 练习 QSizePolicyPyQt: 练习 QSizePolicyPyQt: 练习 QSizePolicyPyQt: 练习 QSizePolicy
  • 首页
  • 博客
  • 书签
  • 文件
  • 分析
  • 登录

PyQt: 练习 QSizePolicy

发表 admin at 2022年4月21日
类别
  • Practice
标签
import sys
from PyQt5.Qt import *


class CLabel(QLabel):
    def sizeHint(self):
        return QSize(200, 200)

    def minimumSizeHint(self):
        return QSize(100, 100)


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setup_ui()

    def setup_ui(self):
        self.setWindowTitle("Qt桌面应用程序")
        self.resize(400, 400)

        self.label_1 = QLabel()
        self.label_1.setText("标签1")
        self.label_1.setStyleSheet("background-color:CornflowerBlue")
        self.label_2 = QLabel()
        self.label_2.setText("标签2")
        self.label_2.setStyleSheet("background-color:DarkSeaGreen")
        self.label_3 = QLabel()
        self.label_3.setText("标签3")
        self.label_3.setStyleSheet("background-color:HotPink")

        self.label_4 = QLabel()
        self.label_4.setText("标签4")
        self.label_4.setStyleSheet("background-color:CornflowerBlue")
        self.label_5 = QLabel()
        self.label_5.setText("标签5")
        self.label_5.setStyleSheet("background-color:DarkSeaGreen")
        self.label_6 = QLabel()
        self.label_6.setText("标签6")
        self.label_6.setStyleSheet("background-color:HotPink")

        self.box_layout_1 = QBoxLayout(QBoxLayout.TopToBottom)
        self.box_layout_1.addWidget(self.label_1)
        self.box_layout_1.addWidget(self.label_2)
        self.box_layout_1.addWidget(self.label_3)
        self.setLayout(self.box_layout_1)

        self.button_1 = QPushButton()
        self.button_1.setText("B")
        self.box_layout_1.addWidget(self.button_1)

        def button_clicked():
            # self.box_layout_1.removeWidget(self.label_1)
            # self.label_1 = CLabel()
            # self.label_1.setText("标签1")
            # self.label_1.setStyleSheet("background-color:CornflowerBlue")
            # self.box_layout_1.insertWidget(0, self.label_1)

            # self.label_1.setSizePolicy(QSizePolicy.Fixed,QSizePolicy.Fixed)
            # self.label_1.setSizePolicy(QSizePolicy.Minimum,QSizePolicy.Minimum)
            # self.label_1.setSizePolicy(QSizePolicy.Maximum,QSizePolicy.Maximum)
            # self.label_1.setSizePolicy(QSizePolicy.Preferred,QSizePolicy.Preferred)
            # self.label_1.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding)
            # self.label_1.setSizePolicy(QSizePolicy.MinimumExpanding,QSizePolicy.MinimumExpanding)
            # self.label_1.setSizePolicy(QSizePolicy.Ignored,QSizePolicy.Ignored)

            self.size_policy = QSizePolicy()
            self.size_policy.setRetainSizeWhenHidden(True)
            # QSizePolicy设置Ignored后,控件最小可以消失
            self.size_policy.setVerticalPolicy(QSizePolicy.Ignored)
            self.size_policy.setHorizontalPolicy(QSizePolicy.Ignored)
            self.label_1.setSizePolicy(self.size_policy)

            self.label_1.hide()

        self.button_1.clicked.connect(button_clicked)


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

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

类别

  • Cat
  • Python
  • MySQL
  • Django
  • Html/CSS
  • JavaScript
  • Vue
  • RegExp
  • php
  • Practice
  • Virtualization
  • Linux
  • Windows
  • Android
  • NAS
  • Software
  • Hardware
  • Network
  • Router
  • Office
  • WordPress
  • SEO
  • English
  • Games
  • Recipes
  • living
  • Memorandum
  • Essays
  • 未分类

归档

©2015-2023 艾丽卡 Blog support@alaica.com
      ajax-loader