PyQt: 练习 QStackedLayoutPyQt: 练习 QStackedLayoutPyQt: 练习 QStackedLayoutPyQt: 练习 QStackedLayout
  • 首页
  • 博客
  • 文件
  • 书签
  • 分析
  • 登录
Search
Generic filters

PyQt: 练习 QStackedLayout

Published by admin at 2022年4月21日
Categories
  • Practice
Tags
import sys
from PyQt5.Qt import *


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

    def setup_ui(self):
        self.setWindowTitle("Qt桌面应用程序")
        self.button_1_flag = 1
        self.resize(300, 300)

        self.button_1 = QPushButton()
        self.button_1.setText("切换标签")
        self.button_2 = QPushButton()
        self.button_2.setText("删除当前标签")

        self.v_box_layout = QVBoxLayout()
        self.v_box_layout.setAlignment(Qt.AlignTop)
        self.setLayout(self.v_box_layout)

        self.h_box_layout = QHBoxLayout()
        self.h_box_layout.addWidget(self.button_1)
        self.h_box_layout.addWidget(self.button_2)

        self.v_box_layout.addLayout(self.h_box_layout)

        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:Blue")

        self.stacked_layout = QStackedLayout()
        self.v_box_layout.addLayout(self.stacked_layout)
        # self.stacked_layout.setStackingMode(QStackedLayout.StackAll)
        self.stacked_layout.addWidget(self.label_1)
        self.stacked_layout.addWidget(self.label_2)
        self.stacked_layout.addWidget(self.label_3)

        self.stacked_layout.insertWidget(0, self.label_4)

        print(self.stacked_layout.widget(0))

        def stacked_layout_current_changed(value):
            print(f"当前Index:{value}")

        self.stacked_layout.currentChanged.connect(stacked_layout_current_changed)

        def stacked_layout_widget_removed(value):
            print(f"Index:{value}被删除了")

        self.stacked_layout.widgetRemoved.connect(stacked_layout_widget_removed)

        def button_1_clicked():
            if self.stacked_layout.count() > 0:
                self.stacked_layout.setCurrentIndex(
                    (self.stacked_layout.currentIndex() + 1) % self.stacked_layout.count())
                self.stacked_layout.currentWidget().setText(
                    self.stacked_layout.currentWidget().text().split(" ")[0] + " Index:" +
                    str(self.stacked_layout.indexOf(self.stacked_layout.currentWidget())))

        self.button_1.clicked.connect(button_1_clicked)

        def button_2_clicked():
            self.stacked_layout.removeWidget(self.stacked_layout.currentWidget())

        self.button_2.clicked.connect(button_2_clicked)


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

发表回复 取消回复

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

Categories

  • 猫
  • 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-2022 Alaica Blog support@alaica.com