我如何在另一类中使用表小部件

发布于 2025-02-13 07:48:54 字数 2377 浏览 0 评论 0原文

我有一个在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文