我如何在另一类中使用表小部件
我有一个在QT设计师中设计的UI。它是由2个选项卡
1 -peactefile.ui形成的; 2- showtable.ui;
我有两个类别的第一类,我有一个按钮(选择文件)和一个标签(显示文件计数),而第二类中的另一个按钮(get files)我只有表格和一个返回按钮。
通过单击获取文件按钮,我想显示我选择的所有文件(带有随机数)的所有文件。
这是我当前的代码:
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton,
QLabel, QLineEdit,
QMessageBox,QCheckBox,QFrame,
QStackedWidget,QFileDialog)
from PyQt5 import uic
class ChooseFile(QWidget):
def __init__(self):
super().__init__()
uic.loadUi("choosefile.ui", self)
self.setWindowTitle("choose file")
# button_submitt
btn = self.findChild(QPushButton,"btn_choose_file")
btn.clicked.connect(self.upload_file)
# label shows count of files
label = self.findChild(QLabel,"label")
btn2 = self.findChild(QPushButton,"btn_get_files")
btn2.clicked.connect(self.get_file)
def upload_file(self):
filter = "TXT (*.txt);;PDF (*.pdf)"
file_name = QFileDialog()
file_name.setFileMode(QFileDialog.ExistingFiles)
filename = QFileDialog.getOpenFileNames(self, "Upload File","",
filter)
file_count = len(filename[0])
if filename:
if (file_count>1):
self.label.setText(str(file_count)+" files selected")
else:
self.label.setText(str(filename[0]))
def get_file(self):
next_page = TableFile()
widget.addWidget(next_page)
widget.setCurrentIndex(widget.currentIndex() + 1)
class TableFile(QWidget):
def __init__(self):
super().__init__()
uic.loadUi("showTable.ui", self)
self.tableWidget.setColumnWidth(0,100)
self.tableWidget.setColumnWidth(1,100)
btn_back = self.findChild(QPushButton,"btn_back")
btn_back.clicked.connect(self.back)
def back(self):
back_page = ChooseFile()
widget.addWidget(back_page)
widget.setCurrentIndex(widget.currentIndex() - 1)
app = QApplication(sys.argv)
ch = ChooseFile()
widget = QStackedWidget()
widget.addWidget(ch)
widget.show()
sys.exit(app.exec_())
I have an UI designed in QT Designer. It is formed from 2 tabs
1 - choosefile.ui; 2 - showTable.ui;
I have two classes for each tab in First class i have one button(to choose file) and a label(which shows the count of files) and another button(get files) in a 2nd class i have only table and a back button.
by clicking on get files button I want to show all files that I selected(with QFileDialog) with random numbers.
This is my current code:
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton,
QLabel, QLineEdit,
QMessageBox,QCheckBox,QFrame,
QStackedWidget,QFileDialog)
from PyQt5 import uic
class ChooseFile(QWidget):
def __init__(self):
super().__init__()
uic.loadUi("choosefile.ui", self)
self.setWindowTitle("choose file")
# button_submitt
btn = self.findChild(QPushButton,"btn_choose_file")
btn.clicked.connect(self.upload_file)
# label shows count of files
label = self.findChild(QLabel,"label")
btn2 = self.findChild(QPushButton,"btn_get_files")
btn2.clicked.connect(self.get_file)
def upload_file(self):
filter = "TXT (*.txt);;PDF (*.pdf)"
file_name = QFileDialog()
file_name.setFileMode(QFileDialog.ExistingFiles)
filename = QFileDialog.getOpenFileNames(self, "Upload File","",
filter)
file_count = len(filename[0])
if filename:
if (file_count>1):
self.label.setText(str(file_count)+" files selected")
else:
self.label.setText(str(filename[0]))
def get_file(self):
next_page = TableFile()
widget.addWidget(next_page)
widget.setCurrentIndex(widget.currentIndex() + 1)
class TableFile(QWidget):
def __init__(self):
super().__init__()
uic.loadUi("showTable.ui", self)
self.tableWidget.setColumnWidth(0,100)
self.tableWidget.setColumnWidth(1,100)
btn_back = self.findChild(QPushButton,"btn_back")
btn_back.clicked.connect(self.back)
def back(self):
back_page = ChooseFile()
widget.addWidget(back_page)
widget.setCurrentIndex(widget.currentIndex() - 1)
app = QApplication(sys.argv)
ch = ChooseFile()
widget = QStackedWidget()
widget.addWidget(ch)
widget.show()
sys.exit(app.exec_())
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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