首页 > 其他分享 >pyqt5文件对话框

pyqt5文件对话框

时间:2024-12-21 10:41:49浏览次数:3  
标签:文件 pushButton centralwidget 对话框 self pyqt5 QtWidgets setObjectName MainWindow

对话框选择文件

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'QFileDialog.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

# 对话框选择文件
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(697, 510)
        # QtWidgets.QWidget:是 QWidget 类的全称,QWidget 是 PyQt 中所有控件的基类,
        # 用于创建用户界面中的窗口和部件。

        # 这行代码的作用是创建一个 QWidget 对象,并将其父窗口设置为 MainWindow。
        # 这个 QWidget 对象通常用作主窗口的中心部件,你可以在这个中心部件上添加其他控件,如按钮、标签、文本框等。
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(200, 40, 75, 23))
        self.pushButton.setObjectName("pushButton")

        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(400, 40, 75, 23))
        self.pushButton_2.setObjectName("pushButton_2")

        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setGeometry(QtCore.QRect(200, 100, 311, 281))
        self.listWidget.setObjectName("listWidget")

        # MainWindow.setCentralWidget(self.centralwidget) 这行代码的作用是将 self.centralwidget
        # 设置为 MainWindow 的中心部件。在 PyQt 的 QMainWindow 架构中,中心部件是主窗口中的主要工作区域,
        # 你可以在这个区域中放置应用程序的主要控件和布局。
        #
        # 为什么需要这行代码
        # 在 PyQt 应用程序中,主窗口通常包含多个部分,包括菜单栏、工具栏、状态栏和中心部件。
        # 中心部件是用户与应用程序交互的主要区域,因此需要将你创建的控件和布局添加到这个部件中。
        # 通过调用 setCentralWidget 方法,你可以确保你的控件显示在主窗口的正确位置。
        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 697, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)

        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

        self.pushButton.clicked.connect(self.bindList)
        self.pushButton_2.clicked.connect(self.bindList2)

    # 使用dir filter获取文件
    def bindList(self):

        from PyQt5.QtWidgets import QFileDialog

        dir = QFileDialog() # 创建文本对话框
        dir.setFileMode(QFileDialog.ExistingFiles) # 设置多选
        dir.setDirectory('C:\\') # 设置初始化路径为C盘

        # 设置只显示图片文件
        dir.setNameFilter("图片文件(*.jpg *.png *.bmp *.ico *.gif)")
        if dir.exec_(): # 判断是否选择了文件
            self.listWidget.addItems(dir.selectedFiles()) #将选择的文件加到listWidget

    # 使用getOpenFileNames方法获取文件
    def bindList2(self):
        from PyQt5.QtWidgets import QFileDialog
        files,filetype = QFileDialog.getOpenFileNames(None,'打开','C:\\',
                                                      '图片文件(*.jpg *.png *.bmp *.ico *.gif)')
        self.listWidget.addItems(files)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "选择文件1"))
        self.pushButton_2.setText(_translate("MainWindow", "选择文件2"))

import sys
# 主方法,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
   app = QtWidgets.QApplication(sys.argv)
   app.setStyle("Fusion") # 设置窗口风格
   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象
   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
   MainWindow.show() # 显示窗体
   sys.exit(app.exec_()) # 程序关闭时退出进程

 

对话框选择文件夹

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'QFileDialog2.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.

# 对话框选择文件夹

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(654, 479)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(120, 90, 261, 41))
        self.lineEdit.setObjectName("lineEdit")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(30, 95, 81, 31))
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(444, 100, 101, 23))
        self.pushButton.setObjectName("pushButton")
        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setGeometry(QtCore.QRect(120, 170, 441, 192))
        self.listWidget.setObjectName("listWidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 654, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.pushButton.clicked.connect(self.bindList)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "选择路径:"))
        self.pushButton.setText(_translate("MainWindow", "选择文件夹"))

    def bindList(self):
        from PyQt5.QtWidgets import QFileDialog
        import os
        # 创建路径选择对话框
        dir = QFileDialog.getExistingDirectory(None,"选择文件夹路径",os.getcwd())
        self.lineEdit.setText(dir) # lineEdit显示文件路径
        list = os.listdir(dir) # 遍历选择的文件夹
        self.listWidget.addItems(list)

import sys
# 主方法,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
   app = QtWidgets.QApplication(sys.argv)
   app.setStyle("Fusion") # 设置窗口风格
   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象
   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
   MainWindow.show() # 显示窗体
   sys.exit(app.exec_()) # 程序关闭时退出进程

 

标签:文件,pushButton,centralwidget,对话框,self,pyqt5,QtWidgets,setObjectName,MainWindow
From: https://www.cnblogs.com/wuminggaodi/p/18620501

相关文章

  • golang:第三方库:用vipper解析yaml配置文件
    一,安装第三方库$gogetgithub.com/spf13/viper二,代码1,配置文件Database:DBType:mysqlUserName:dbusernamePassword:dbpasswordHost:127.0.0.1:3306DBName:dbnameCharset:utf8ParseTime:TrueMaxIdleConns:10MaxOpenConns:30 2,代码:......
  • 文件包含tomato靶机通关和文件上传hackme靶机通关
    文件包含tomato靶机通关靶机地址:192.168.152.152注:靶机打开后在kali中扫描一下就能得到打开网站第一步信息收集将网址放到dirb中扫描一下得到了三个目录我们挨个访问一下第一个是主目录第二个是主页面第三个报错第二步我们在主目录页面继续访问......
  • 文件操作 -2024/12/19
    一些对文件的操作packageTestCode5;importjava.io.File;importjava.io.IOException;publicclassFile_Test1{publicstaticvoidmain(String[]args)throwsIOException{Filef=newFile("D:\\Idea项目\\NewStudy\\1.txt");//Sy......
  • Linux文件属性 -- 文件大小
    四、文件大小1.1ls命令        它是Linux中最常用的文件和目录列表命令之一。可以显示文件的各种属性,包括文件大小,直接输入“ls”命令它会输出当前目录所有的文件及目录名称。ll命令是“ls-l”的缩写,常以“ll-h”的形式搭配使用,方便使用者阅读。ls[选项][......
  • 关于 *.esd、*.wim、*.msu 和 *.cab 格式文件的对比分析表,涵盖它们的基本特点、用途、
    关于*.esd、*.wim、*.msu和*.cab格式文件的对比分析表,涵盖它们的基本特点、用途、优缺点等方面:特性.esd (ElectronicSoftwareDistribution).wim (WindowsImagingFormat).msu (MicrosoftUpdateStandalonePackage).cab (CabinetFile)文件类型压缩映像......
  • 对 Windows 备份 应用以及 WebExperienceHost 应用的删除和封装。具体来说,您提到删除
    对Windows备份应用以及WebExperienceHost应用的删除和封装。具体来说,您提到删除AppxManifest.xml文件中的WebExperienceHost应用和WindowsBackupClient.exe,这些操作通常用于定制和优化Windows系统,尤其是进行封装、去除不必要的系统应用或服务。以下是详细步骤及说明,......
  • PyQt5与OpenCV结合的三个小练习
    题目1、简单图像处理创建一个PyQt应用程序,该应用程序能够:1、使用OpenCV加载一张图像。2、在PyQt的窗口中显示这张图像。3、提供四个按钮(QPushButton):一个用于将图像转换为灰度图一个用于将图像恢复为原始彩色图一个用于将图像进行翻转一个用于将图像进行旋转4、当用......
  • Set-MMAgent -MaxOperationAPIFiles 的主要功能是设置 Microsoft Monitoring Agent (M
    mmagentApplicationLaunchPrefetching:FalseApplicationPreLaunch    :FalseMaxOperationAPIFiles    :8192MemoryCompression      :FalseOperationAPI        :FalsePageCombining        :FalsePS......
  • C++ 的头文件怎么给我一种接口的感觉?
    C++中的头文件确实可以被看作是一种接口(Interface),它们在C++程序设计中扮演着至关重要的角色。以下是头文件如何体现接口特性的几个方面:1.声明与定义分离接口(头文件):头文件中包含了类的声明、函数原型、模板声明等,它们定义了程序中可用的接口,但不包含具体的实现细节。实现(源......
  • 文件流 结构体
    #include<iostream>#include<cstdio>usingnamespacestd;structno{stringname;intage;stringblc;intshengao;inttizhong;};intmain(intargc,char**argv){freopen("student.txt","w",stdou......