[英]How to show Python dictionary data in pyside2 window? [on hold]
我在 python 中有一個字典列表,我想以附圖所示的方式在 python pyside2 window 中顯示這些字典數據。
這是三個具有多個鍵和值的字典,下面是示例字典
data = {
"start time": ["2001-04-27t03:20:15-07:00","2001-04-27T12:20:15+02:00",
"2001-04-27T10:20:15Z"],
"Approximate datasets size in the file system" : ["6.940 MB","11 datasets"],
"Datatypes" : ["APS", "Order APS","Slow Quantity", "Tacho Edges" , "Throughput"],
"Quantities" : ["Rotational Speed" , "Sound Pressure"] }
有一個包含 1000 種此類詞典的列表,我的問題是如何在 QT pyside2 中顯示它們,如附圖所示。
它可能看起來像這樣:
import sys
from PyQt5 import QtWidgets, QtCore
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, data):
super().__init__()
self.data = data
self.scrollArea = QtWidgets.QScrollArea()
self.scrollArea.setWidgetResizable(True)
self.setCentralWidget(self.scrollArea)
self.widget = QtWidgets.QWidget()
self.scrollArea.setWidget(self.widget)
button = QtWidgets.QPushButton("Click me")
button.clicked.connect(self.onButton)
self.grid = QtWidgets.QGridLayout(self.widget)
self.grid.addWidget(button)
def onButton(self):
i = 1
for item in self.data:
textLeft = f'''
Start time:
{item["start time"][0]}
America/Los_Angeles
{item["start time"][1]} Original
{item["start time"][2]} UTC
Approximate datasets size in the file system:
{item["Approximate datasets size in the file system"][0]}
'''
textRight = f'''
{item["Approximate datasets size in the file system"][1]}
Datatypes:
{' '.join(item["Datatypes"][:3])}
{' '.join(item["Datatypes"][3:])}
Quantities:
{' '.join(item["Quantities"])}
'''
labelLeft = QtWidgets.QLabel()
labelLeft.setText(textLeft)
self.grid.addWidget(labelLeft, i, 0)
labelRight = QtWidgets.QLabel()
labelRight.setText(textRight)
self.grid.addWidget(labelRight, i, 1)
line = QtWidgets.QFrame()
line.setFrameShape(QtWidgets.QFrame.HLine)
self.grid.addWidget(line, i+1, 0, 1, 2)
i += 2
data = [
{"start time": ["2001-04-27t03:20:15-07:00", "2001-04-27T12:20:15+02:00", "2001-04-27T10:20:15Z"],
"Approximate datasets size in the file system" : ["6.940 MB","11 datasets"],
"Datatypes" : ["APS", "Order APS","Slow Quantity", "Tacho Edges" , "Throughput"],
"Quantities" : ["Rotational Speed" , "Sound Pressure"]},
{"start time": ["2222-07:00", "2222:15+02:00", "2222:15Z"],
"Approximate datasets size in the file system" : ["2.22 MB","11 datasets"],
"Datatypes" : ["APS", "Order APS","Slow Quantity", "Tacho Edges" , "Throughput"],
"Quantities" : ["Rotational Speed" , "Sound Pressure"]},
{"start time": ["333-07:00", "333:15+02:00", "333:15Z"],
"Approximate datasets size in the file system" : ["333 MB","11 datasets"],
"Datatypes" : ["APS", "Order APS","Slow Quantity", "Tacho Edges" , "Throughput"],
"Quantities" : ["Rotational Speed" , "Sound Pressure"] },
]
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myWindow = MyWindow(data)
myWindow.resize(500, 300)
myWindow.show()
app.exec_()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.