PySide6 文件选择窗口

PySide6 文件选择窗口

PySide6 调用窗口文件

  1. 用Qt Designer绘制窗口界面,生成窗口UI文件,转成python文件。完整代码如下:
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QHBoxLayout, QLabel,
    QMainWindow, QMenuBar, QPushButton, QSizePolicy,
    QSpacerItem, QStatusBar, QWidget)

class Ui_testFileDialog(object):
    def setupUi(self, testFileDialog):
        if not testFileDialog.objectName():
            testFileDialog.setObjectName(u"testFileDialog")
        testFileDialog.setWindowModality(Qt.WindowModal)
        testFileDialog.resize(793, 204)
        font = QFont()
        font.setPointSize(10)
        testFileDialog.setFont(font)
        testFileDialog.setStyleSheet(u"groupbox {\n"
"border: 0px;\n"
"}")
        self.centralwidget = QWidget(testFileDialog)
        self.centralwidget.setObjectName(u"centralwidget")
        self.pushButton_ClosedWindow = QPushButton(self.centralwidget)
        self.pushButton_ClosedWindow.setObjectName(u"pushButton_ClosedWindow")
        self.pushButton_ClosedWindow.setGeometry(QRect(660, 130, 75, 24))
        self.pushButton_ClosedWindow.setMaximumSize(QSize(80, 16777215))
        self.pushButton_ClosedWindow.setFont(font)
        self.layoutWidget = QWidget(self.centralwidget)
        self.layoutWidget.setObjectName(u"layoutWidget")
        self.layoutWidget.setGeometry(QRect(61, 41, 679, 29))
        self.horizontalLayout_FilePath = QHBoxLayout(self.layoutWidget)
        self.horizontalLayout_FilePath.setObjectName(u"horizontalLayout_FilePath")
        self.horizontalLayout_FilePath.setContentsMargins(0, 0, 0, 0)
        self.label_FileName = QLabel(self.layoutWidget)
        self.label_FileName.setObjectName(u"label_FileName")
        self.label_FileName.setMaximumSize(QSize(80, 16777215))
        self.label_FileName.setFont(font)
        self.label_FileName.setFrameShape(QFrame.Panel)
        self.label_FileName.setFrameShadow(QFrame.Raised)
        self.label_FileName.setTextFormat(Qt.AutoText)
        self.label_FileName.setAlignment(Qt.AlignCenter)
        self.label_FileName.setWordWrap(True)
        self.label_FileName.setMargin(1)

        self.horizontalLayout_FilePath.addWidget(self.label_FileName)

        self.label_FilePath = QLabel(self.layoutWidget)
        self.label_FilePath.setObjectName(u"label_FilePath")
        self.label_FilePath.setFont(font)
        self.label_FilePath.setFrameShape(QFrame.Box)
        self.label_FilePath.setFrameShadow(QFrame.Sunken)

        self.horizontalLayout_FilePath.addWidget(self.label_FilePath)

        self.horizontalSpacer = QSpacerItem(20, 20, QSizePolicy.Fixed, QSizePolicy.Minimum)

        self.horizontalLayout_FilePath.addItem(self.horizontalSpacer)

        self.pushButton_FilePath = QPushButton(self.layoutWidget)
        self.pushButton_FilePath.setObjectName(u"pushButton_FilePath")
        self.pushButton_FilePath.setMaximumSize(QSize(80, 16777215))
        self.pushButton_FilePath.setFont(font)

        self.horizontalLayout_FilePath.addWidget(self.pushButton_FilePath)

        testFileDialog.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(testFileDialog)
        self.menubar.setObjectName(u"menubar")
        self.menubar.setGeometry(QRect(0, 0, 793, 22))
        testFileDialog.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(testFileDialog)
        self.statusbar.setObjectName(u"statusbar")
        testFileDialog.setStatusBar(self.statusbar)

        self.retranslateUi(testFileDialog)

        QMetaObject.connectSlotsByName(testFileDialog)
    # setupUi

    def retranslateUi(self, testFileDialog):
        testFileDialog.setWindowTitle(QCoreApplication.translate("testFileDialog", u"testFileDialog", None))
        self.pushButton_ClosedWindow.setText(QCoreApplication.translate("testFileDialog", u"close", None))
        self.label_FileName.setText(QCoreApplication.translate("testFileDialog", u"File Name", None))
        self.label_FilePath.setText(QCoreApplication.translate("testFileDialog", u"input file", None))
        self.pushButton_FilePath.setText(QCoreApplication.translate("testFileDialog", u"Select File", None))
    # retranslateUi
  1. 调用窗口文件:
    通过如下代码可以调用窗口文件:
from PySide6.QtWidgets import QMainWindow, QApplication
from testFileDialog_ui import Ui_testFileDialog
import sys

class pySideFileDialog(QMainWindow, Ui_testFileDialog):
    def __init__(self, parent = None) -> None:
        super(pySideFileDialog,self).__init__(parent)
        self.setupUi(self)
   
if __name__=='__main__':
    app = QApplication(sys.argv)
    window = pySideFileDialog()
    window.show()
    sys.exit(app.exec_())

PySide6 添加按钮功能

如下图,给按钮’Select File’ 和 ‘close’ 添加功能。
文件选择窗口
在调用窗口代码中添加如下代码:

    def actionUI(self):
        self.pushButton_FilePath.clicked.connect(self.selectFile)
        self.pushButton_ClosedWindow.clicked.connect(self.closeWindow)
    
    def selectFile(self):
        self.selectFilePath = QFileDialog.getOpenFileName(self, "Select File","","python (*.py);;all file (*.*)")[0]
        if self.selectFilePath:
            # get file name with extenseion, only file name, file extension
            self.fileBaseName, self.fileName, self.FileExt = os.path.basename(self.selectFilePath)
            self.fileName, self.FileExt = os.path.splitext(self.fileBaseName)
            self.label_FilePath.setText(self.fileBaseName)
            
    def closeWindow(self):
        QCoreApplication.quit()

如果按钮’Select File’被按下, 函数 selectFile将被调用。通过PySide的文件窗口函数QFileDialog.getOpenFileName,可以实现文件的选择。被选文件名会显示在input file区域。
如果按钮’close’被按下,函数closeWindow将被调用。 主窗口将被关闭。
以下是完整的代码:

from PySide6.QtWidgets import QMainWindow, QApplication, QFileDialog
from PySide6.QtCore import QCoreApplication
from testFileDialog_ui import Ui_testFileDialog
import sys
import os



class pySideFileDialog(QMainWindow, Ui_testFileDialog):
    def __init__(self, parent = None) -> None:
        super(pySideFileDialog,self).__init__(parent)
        self.setupUi(self)
        self.actionUI()
    
    def actionUI(self):
        self.pushButton_FilePath.clicked.connect(self.selectFile)
        self.pushButton_ClosedWindow.clicked.connect(self.closeWindow)
    
    def selectFile(self):
        self.selectFilePath = QFileDialog.getOpenFileName(self, "Select File","","python (*.py);;all file (*.*)")[0]
        if self.selectFilePath:
            # get file name with extenseion, only file name, file extension
            self.fileBaseName, self.fileName, self.FileExt = os.path.basename(self.selectFilePath)
            self.fileName, self.FileExt = os.path.splitext(self.fileBaseName)
            self.label_FilePath.setText(self.fileBaseName)
            
    def closeWindow(self):
        QCoreApplication.quit()
    
    
    
if __name__=='__main__':
    app = QApplication(sys.argv)
    window = pySideFileDialog()
    window.show()
    sys.exit(app.exec_())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Pyside6 是一种用于创建图形用户界面的 Python 框架,通过使用 Pyside6,我们可以轻松地开发具有交互性的应用程序。文件批量处理小工具是指能够对一批文件进行批量处理的工具。 使用 Pyside6 来创建文件批量处理小工具可以让用户直观地选择文件,指定处理方式,并执行批量处理操作。以下是一个简单的使用 Pyside6 实现文件批量处理的例子: 1. 导入 Pyside6 的模块:首先,我们需要导入 Pyside6 的模块,包括 QtWidgets、QtCore 和 QtGui。 2. 创建窗口:使用 Pyside6 的 QtWidgets 模块,创建一个窗口类,并添加所需的控件,如文件选择按钮、处理方式选择下拉列表和处理按钮。 3. 定义处理函数:根据用户选择的处理方式,编写对应的处理函数。 4. 连接信号和槽:将文件选择按钮的点击信号连接到选择文件的槽函数,将处理按钮的点击信号连接到处理函数。 5. 执行应用程序:使用 Pyside6 的 QtWidgets 模块,执行应用程序。 这样,我们就可以通过 Pyside6 实现一个简单的文件批量处理小工具。用户可以通过界面选择需要处理的文件选择处理方式,并点击处理按钮来执行批量处理操作。 需要注意的是,以上只是一个简单的示例,实际开发中还可以根据需求进行功能扩展,例如增加进度条、错误处理等。同时,还可以使用 Pyside6 提供的丰富控件和布局管理器来设计更加优雅和易用的界面。 总的来说,Pyside6 是一个强大的框架,可以帮助我们快速开发文件批量处理小工具,并且提供了丰富的功能和灵活的界面设计选项。通过灵活运用 Pyside6 的特性,我们可以根据具体需求打造出高效、易用的文件批量处理工具。 ### 回答2: pyside6 文件批量处理小工具是一个基于Python的图形界面工具,旨在帮助用户批量处理文件。该工具使用了Pyside6库,可以在跨平台的环境下使用,兼容主流操作系统如Windows、MacOS和Linux。 该工具提供了用户友好的图形界面,使用户可以方便地使用各种功能。用户可以通过工具的文件选择功能选择需要处理的文件,支持选择单个文件或多个文件。工具还提供了多种处理选项,包括文件格式转换、文件重命名、文件合并、文件拆分等等。 对于文件格式转换功能,工具可以将选择文件转换为用户指定的目标格式。例如,用户可以将选择的图片文件批量转换为不同的格式,如JPEG、PNG等。对于文件重命名功能,工具可以根据用户定义的规则,将文件进行批量重命名,例如在文件名前添加前缀、在文件名后添加后缀等。 此外,该工具还提供了文件合并和文件拆分的功能。用户可以选择多个文件进行合并,将它们合并为一个文件。相反地,用户也可以选择一个文件,并指定拆分规则,将文件按照规则拆分为多个文件。这是处理大文件时非常实用的功能。 总的来说,pyside6 文件批量处理小工具是一个功能强大的文件处理工具,能够帮助用户快速高效地批量处理文件。无论是进行格式转换、文件重命名、文件合并或者文件拆分,该工具都能提供简单易用的操作界面,帮助用户轻松完成各种文件处理任务。 ### 回答3: Pyside6是一个Python库,用于创建跨平台的GUI应用程序。使用Pyside6,我们可以轻松地开发各种各样的小工具,包括文件批量处理工具。 文件批量处理小工具的主要功能是对指定文件夹中的一组文件进行批量处理。通过这个工具,我们可以实现一次性对大量文件进行重命名、复制、剪切、删除等操作,相比手动一个一个操作,大大提高了效率。 在开发这个小工具时,我们可以使用Pyside6的各种控件来构建用户界面,例如按钮、文本框、文件选择框等。通过这些控件,用户可以方便地选择要处理的文件夹和指定操作。 在编写处理功能时,我们可以使用Python文件处理库来实现具体的操作,例如os模块用于文件的重命名和删除,shutil模块用于文件的复制和剪切等等。通过这些库,我们可以轻松地对文件进行批量处理。 此外,为了提高用户体验,我们可以在界面上添加进度条或状态提示,让用户了解处理进度,确保程序的可靠性和稳定性。 总结来说,使用Pyside6开发文件批量处理小工具可以实现方便、高效的文件管理。用户可以通过简单的界面操作,完成复杂繁琐的文件处理任务,提高工作效率。同时,开发者可以灵活运用Python文件处理库,实现各种各样的操作,满足不同用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值