我想从字典(或列表或变量)动态更新和创建标签。你知道吗
词典更改时如何链接/更新标签?你知道吗
当按下按钮时,它生成随机值并将其存储到dict中。这些值用于在init函数中创建标签。 当按下按钮时,如何使这些值保持最新?你知道吗
import sys, random
from PyQt5 import QtWidgets
from PyQt5.QtCore import *
class Window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.updt = QtWidgets.QPushButton( 'Update' )
mygroupbox = QtWidgets.QGroupBox('')
myform = QtWidgets.QFormLayout()
myDict = createValues.randomValues()
for i, item in myDict.items():
self.label = QtWidgets.QLabel( str( item['value'] ) )
myform.addRow(self.label)
mygroupbox.setLayout(myform)
scroll = QtWidgets.QScrollArea()
scroll.setWidget(mygroupbox)
scroll.setWidgetResizable(True)
scroll.setFixedHeight(400)
layout = QtWidgets.QVBoxLayout(self)
layout.addWidget(self.updt)
layout.addWidget(scroll)
self.updt.clicked.connect(lambda: self.changeValues() )
self.show()
def changeValues(self):
self.myDict = createValues.randomValues()
class createValues():
def randomValues():
items = ['item1','item2','item3','item4']
myData = {}
for i in items:
myData[i] = {}
myData[i]['name'] = i
myData[i]['value'] = random.uniform(0, 10)
print(myData)
return myData
app = QtWidgets.QApplication(sys.argv)
a_window = Window()
a_window.setGeometry(500, 300, 300, 400)
sys.exit(app.exec_())
我将把布局(在
init_ui
中创建标签)与“给标签随机值”逻辑分开。你知道吗在
init_ui
中,我们可以创建一个定义数量的QLabel
,并在列表中跟踪它们。比如:在
change_values
中,我们可以将所有逻辑用随机值填充标签要用第一个值初始化标签,只需在
__init__
末尾调用self.changeValues()
相关问题 更多 >
编程相关推荐