在 python 中使用 PyQt5 启动依赖的 QCombobox

问题描述 投票:0回答:0

我正在学习使用 PyQt5 并想添加一个依赖的 QComboBox。 Combobox 的项目应该是目录中文件的列表。 函数 get_files() 读取目录中的文件并将它们作为列表返回。

但是,如果我在调试模式下运行脚本,QCombobox 只会显示这些项目。 为什么会这样?

代码如下:

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
import time

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(700, 681)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)

self.B_SOFT = QtWidgets.QComboBox(self.centralwidget)
        self.B_SOFT.setGeometry(QtCore.QRect(130, 150, 360, 50))
        self.B_SOFT.setObjectName("B_SOFT")

        xlsx,SOFTS = get_files()
        [self.B_SOFT.addItem(x) for x in SOFTS]

def get_files():
    import os; import numpy as np
    entries = os.listdir()
    msk = ['.xls' in x for x in entries]
    xlsx = [x for i,x in enumerate(entries) if msk[i]]
    names = [x.replace('EPB_SOFTWARE__','').replace('.xlsx','') for x in xlsx]
    return xlsx,names

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
python pyqt5 qcombobox
© www.soinside.com 2019 - 2024. All rights reserved.