目录
代码:
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


4934

被折叠的 条评论
为什么被折叠?



