PyQt5_动态设置控件

目录

代码:

使用:

效果:

代码:

import sys
from PyQt5 import QtCore,QtWidgets
from typing import Any,Dict

class Example_Dynamic(QtWidgets.QWidget):
    def __init__(self,params:Dict[str,Any]):
        super().__init__()
        self.params = params
        self.init_ui()
        pass

    def init_ui(self):
        self.setWindowTitle('动态显示控件')
        self.setMinimumWidth(400)
        self.setMinimumHeight(200)

        content_widget = QtWidgets.QWidget()
        self.content_layout = QtWidgets.QHBoxLayout()
        content_widget.setLayout(self.content_layout)
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(content_widget)
        self.setLayout(layout)
        self.start_caculate()
        pass

    def start_caculate(self):
        while self.content_layout.count():
            item = self.content_layout.takeAt(0)
            widget = item.widget()
            if widget is not None:
                widget.deleteLater()

        temp = self.params['temp']
        if temp == 1:
            label = QtWidgets.QLabel('动态显示哈哈哈哈哈哈-1111')
            label1 = QtWidgets.QLabel('动态显示哈哈哈哈哈哈-1122')
            label2 = QtWidgets.QLabel('动态显示哈哈哈哈哈哈-1133')
            self.content_layout.addWidget(label)
            self.content_layout.addWidget(label1)
            self.content_layout.addWidget(label2)
            pass
        elif temp == 2:
            lineeidt1 = QtWidgets.QLineEdit()
            lineeidt1.setText('2222-11111')
            lineeidt2 = QtWidgets.QLineEdit()
            lineeidt2.setText('2222-222222')
            self.content_layout.addWidget(lineeidt1)
            self.content_layout.addWidget(lineeidt2)
            pass
        else:
            label = QtWidgets.QLabel('最后333333-1111')
            lineeidt1 = QtWidgets.QLineEdit()
            lineeidt1.setText('3333-11111')
            self.content_layout.addWidget(label)
            self.content_layout.addWidget(lineeidt1)
            pass
        pass

使用:

if __name__ == '__main__':
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
    app = QtWidgets.QApplication(sys.argv)
    pre_data = {}
    pre_data['temp'] = 1
    temp_widget = Example_Dynamic(pre_data)
    temp_widget.show()
    app.exec()
    pass

效果:

temp 为 1

temp 为 2

 

temp 为 3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值