如何在使用Functions导入文件后刷新/更新PyQt5 QTableWidget?

2024-04-26 03:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用pyqt5而不是OOP方法来创建GUI窗口。我试图用Tkinter来创建这个窗口,但是我不喜欢它的表,比如pandas桌子。他们不太好!你知道吗

我找了我的问题,但找不到我想要的。你知道吗

我有一个QTableWidget在我的主窗口中,正如你在图片中看到的。你知道吗

tableWidget = QtWidgets.QTableWidget(tab)
tableWidget.setMaximumSize(QtCore.QSize(471, 16777215))
tableWidget.setRowCount(100000)
tableWidget.setColumnCount(4)
tableWidget.setObjectName("tableWidget")

用户有一个Import文件菜单,他/她可以导入一个excel文件。我尝试使用pandas使这些数据集框架从excel文件派生到一些字典。你知道吗

def importfunc():
    global dfimport
    import_file_path,_ = QtWidgets.QFileDialog.getOpenFileName(MainWindow,"Import Excel File","","All Files (*);;Excel (*.xlsx);;Excel (*.xls)")
    dfimport = pd.read_excel(import_file_path)
    dic = dfimport.to_dict()
    tdict = {"t%s" % (i+1): dic["t"][i] for i in dic["t"].keys()}
    udict = {"u%s" % (i+1): dic["Vx"][i] for i in dic["Vx"].keys()}
    vdict = {"v%s" % (i+1): dic["Vy"][i] for i in dic["Vy"].keys()}
    wdict = {"w%s" % (i+1): dic["Vz"][i] for i in dic["Vz"].keys()}
    numbers = list(range(1, len(tdict)+1))

我尝试使用以下代码将这些数据集放入QTableWidget(这仅适用于第一列):

for i in numbers :
    tableWidget.setItem(i-1, 0, QtWidgets.QTableWidgetItem(tdict["t%s" %i]))

但在这之后什么也没发生,我用了一些print()测试了一下字典是我想要的。你知道吗

有没有办法刷新/更新我的QTableWidget来显示这些数据集?你知道吗

enter image description here


Tags: 文件数据inpandasforkeysexceldic