如何在标签中求解覆盖文本 - > PYQT标签?
我定义函数,将filepath添加到标签中以进行循环。我使用qfiledialog.getopenfileenames函数加载文件路径中的mdb_paths1变量。然后,在for循环的每个步骤中,我创建一个新标签并将其设置为网格中的另一个位置,然后将文件路径存储在其中。
我有问题。如果我想第二次上传FilePath(第二次克利亚按钮),我的印刷filepaths将得到覆盖。
你能帮助我吗 ?
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QGridLayout, QFileDialog,QCheckBox)
from PyQt5 import QtCore
import os
from PyQt5 import QtGui, QtWidgets, QtCore, Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import qtawesome as qta
class Ui_MainWindow(object):
def __init__(self):
super().__init__()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.NonModal)
MainWindow.resize(1000, 1000)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.hboxlayout1= QtWidgets.QHBoxLayout(self.centralwidget)
self.vboxlayout1 = QtWidgets.QVBoxLayout()
self.hboxlayout1.addLayout(self.vboxlayout1)
self.vboxlayout2 = QtWidgets.QVBoxLayout()
self.hboxlayout1.addLayout(self.vboxlayout2)
#GRID 1---------------------------------------------------------------------------------------------
#self.grid1 = QtWidgets.QGridLayout(self.centralwidget)
self.grid1 = QtWidgets.QGridLayout()
self.vboxlayout1.addLayout(self.grid1)
self.label1_1 = QtWidgets.QLabel(self.centralwidget)
self.label1_1.setObjectName("label")
self.label1_1.setText("Upload files --> ")
self.label1_1.setStyleSheet("background-color: white")
self.label1_1.adjustSize()
self.grid1.addWidget(self.label1_1, 0, 1)
self.button1_1 = QtWidgets.QPushButton(self.centralwidget)
self.button1_1.setObjectName("button")
self.button1_1.setText("BROWSE")
self.button1_1.clicked.connect(self.open_mdb1)
self.grid1.addWidget(self.button1_1, 0, 2)
self.label1_2 = QtWidgets.QLabel(self.centralwidget)
self.label1_2.setObjectName("label1")
self.label1_2.setText("Uploaded files: ")
self.grid1.addWidget(self.label1_2, 1, 1)
#---------------------------------------------------------------------------------------------------------
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Data quality controller"))
def open_mdb1(self):
mdb_paths1, _ = QFileDialog.getOpenFileNames(self.centralwidget,
'Select file',
'./',
'Access Files (*.mdb *.accdb)')
self.label1_2.setText("")
for a in range(len(mdb_paths1)):
self.label1_2 = QtWidgets.QLabel(self.centralwidget)
self.label1_2.setObjectName("label2")
self.label1_2.setText(mdb_paths1[a])
print(a)
self.grid1.addWidget(self.label1_2, 1+a, 1)
I define function which add filepaths to labels in for loop. I load the file path using the QFileDialog.getOpenFileNames function into the mdb_paths1 variable. Then, in each step of the for loop, I create a new label and set it to another location in the grid and store the file path in it.
I have a problem. If I want to upload filepaths second time (by cliking button second time), my printed filepaths will get overwrite.
Can you help me ?
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QGridLayout, QFileDialog,QCheckBox)
from PyQt5 import QtCore
import os
from PyQt5 import QtGui, QtWidgets, QtCore, Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import qtawesome as qta
class Ui_MainWindow(object):
def __init__(self):
super().__init__()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.NonModal)
MainWindow.resize(1000, 1000)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.hboxlayout1= QtWidgets.QHBoxLayout(self.centralwidget)
self.vboxlayout1 = QtWidgets.QVBoxLayout()
self.hboxlayout1.addLayout(self.vboxlayout1)
self.vboxlayout2 = QtWidgets.QVBoxLayout()
self.hboxlayout1.addLayout(self.vboxlayout2)
#GRID 1---------------------------------------------------------------------------------------------
#self.grid1 = QtWidgets.QGridLayout(self.centralwidget)
self.grid1 = QtWidgets.QGridLayout()
self.vboxlayout1.addLayout(self.grid1)
self.label1_1 = QtWidgets.QLabel(self.centralwidget)
self.label1_1.setObjectName("label")
self.label1_1.setText("Upload files --> ")
self.label1_1.setStyleSheet("background-color: white")
self.label1_1.adjustSize()
self.grid1.addWidget(self.label1_1, 0, 1)
self.button1_1 = QtWidgets.QPushButton(self.centralwidget)
self.button1_1.setObjectName("button")
self.button1_1.setText("BROWSE")
self.button1_1.clicked.connect(self.open_mdb1)
self.grid1.addWidget(self.button1_1, 0, 2)
self.label1_2 = QtWidgets.QLabel(self.centralwidget)
self.label1_2.setObjectName("label1")
self.label1_2.setText("Uploaded files: ")
self.grid1.addWidget(self.label1_2, 1, 1)
#---------------------------------------------------------------------------------------------------------
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Data quality controller"))
def open_mdb1(self):
mdb_paths1, _ = QFileDialog.getOpenFileNames(self.centralwidget,
'Select file',
'./',
'Access Files (*.mdb *.accdb)')
self.label1_2.setText("")
for a in range(len(mdb_paths1)):
self.label1_2 = QtWidgets.QLabel(self.centralwidget)
self.label1_2.setObjectName("label2")
self.label1_2.setText(mdb_paths1[a])
print(a)
self.grid1.addWidget(self.label1_2, 1+a, 1)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试以下操作:
Try this: