Как снять флажок для каждого файла, прочитанного в PyQt5? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть несколько файлов, каждый из которых содержит строки и столбцы. Я хочу извлечь столбцы из каждого файла и показать в флажок. Несколько имен файлов отображаются в Combobox. Если я выбираю файл, столбцы для этого файла должны отображаться только в поле.

Но в настоящее время Если выбрать другой файл, предшествующий предыдущему, столбцы для предыдущего файла также отображаются.

Например, если первый файл содержит 4 столбца, то появятся 4 флажка [столбец 1, столбец 2, столбец 3, столбец 4], если второй файл, содержащий 6 столбцов, считывается одновременно, тогда флажки 6 должен появиться только [col 1, col2, col3, col4, col5, col6]. Но моя программа генерирует 4 + 6 = 10 столбцов [col1, col2, col3, col4, col1, col2, col3, col4, col5, col6]. Но в настоящее время это не очистка данных.

class MatplotlibWidget(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        loadUi("graphgenerate-v1.ui", self)        
        self.upload_btn.clicked.connect(self.upload_File)
        self.playbutton.clicked.connect(self.selectFile)
        ----

    def upload_File(self):

        global fname
        upvalue=""
        fname=["<--Select File-->", ]
        file_dialog = QFileDialog()
        file_dialog.setFileMode(QFileDialog.ExistingFiles)
        file_dialog.setOption(QFileDialog.DontUseNativeDialog, True)
        file_view = file_dialog.findChild(QListView, 'listView')
        # to make it possible to select multiple directories:
        if file_view:
            file_view.setSelectionMode(QAbstractItemView.MultiSelection)
        f_tree_view = file_dialog.findChild(QTreeView)
        if f_tree_view:
            f_tree_view.setSelectionMode(QAbstractItemView.MultiSelection)
        if file_dialog.exec():
            paths = file_dialog.selectedFiles()
            for p in paths:
                sp = os.path.split(p)[1]
                fname.append(sp)
                shutil.copy(p,"Files")
                upvalue= upvalue+" "+sp+","
                self.upload_label.setText(upvalue)

        ---   
    def selectFile(self):
        --
        self.comboBox.clear()
        self.comboBox.addItems(fname)

        self.comboBox.activated[str].connect(self.selectColumn)

    def selectColumn(self,i):

        global plots,x_arr,y_arr
        if i=="<--Select File-->":
            QtWidgets.QMessageBox.warning(QtWidgets.QMessageBox(), 'Error', 'Please Select File and Column to plot')
        else:
            path = "Files" + "\\" + i
            f1 = open(path, 'r')
            global data,m,n
            data = np.genfromtxt(f1)
            m = np.size(data, 0)
            n = np.size(data, 1)
            self.Column_label.setText("Columns: " +str(n))
            col = []

            for k in range(1,n):   

                self.widget = QtWidgets.QWidget(self.verticalLayoutWidget)
                self.widget.setObjectName("widget")
                self.checkBox = QtWidgets.QCheckBox(self.widget)                
                self.checkBox.setObjectName("checkBox")
                self.verticalLayout.addWidget(self.widget)
                self.checkBox.setText(" Col " + str(k + 1))  

Я ожидаю снять флажок для данных следующего файла. Я новичок в PyQt5, пожалуйста, помогите мне исправить это.

...