У меня есть несколько файлов, каждый из которых содержит строки и столбцы. Я хочу извлечь столбцы из каждого файла и показать в флажок. Несколько имен файлов отображаются в 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, пожалуйста, помогите мне исправить это.