当前位置: 首页 > news >正文

py Qt5学习记录

1.Qt5的安装

可参考一些博客如:Python 小白从零开始 PyQt5 项目实战(2)菜单和工具栏_pyqt 二级菜单-CSDN博客

2.Qt5的界面显示

3.新建一个工具栏并打开本地文件方法

(1)在Qt5界面右下角有个“动作编辑器”,点击后新建如下图所示,新建完成以后鼠标选中拖到新建好的工具栏中。工具栏建法:直接鼠标右键会出现“添加工具栏”。

(2)添加信号连接线可参考上述博客内容,新建函数openfile()

   (3)点击右下角信号/槽编辑器建立信号连接

   (4)将ui转化成py文件,其中py内容如下zuiho

from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(1098, 816)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 1098, 30))self.menubar.setObjectName("menubar")self.menu = QtWidgets.QMenu(self.menubar)self.menu.setObjectName("menu")self.menu_2 = QtWidgets.QMenu(self.menubar)self.menu_2.setObjectName("menu_2")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.toolBar = QtWidgets.QToolBar(MainWindow)self.toolBar.setObjectName("toolBar")MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)self.action = QtWidgets.QAction(MainWindow)self.action.setObjectName("action")self.action_2 = QtWidgets.QAction(MainWindow)self.action_2.setObjectName("action_2")self.menubar.addAction(self.menu.menuAction())self.menubar.addAction(self.menu_2.menuAction())self.toolBar.addAction(self.action)self.toolBar.addAction(self.action_2)self.retranslateUi(MainWindow)self.action.triggered.connect(MainWindow.openfile) # type: ignoreQtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.menu.setTitle(_translate("MainWindow", "文件"))self.menu_2.setTitle(_translate("MainWindow", "退出"))self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))self.action.setText(_translate("MainWindow", "打开文件"))self.action_2.setText(_translate("MainWindow", "保存文件"))

(5)主函数如下

from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from PyQt5.QtWidgets import QFileDialog
from third import Ui_MainWindow # 导入图像界面设计文件
class MyMainWindow(QMainWindow, Ui_MainWindow):  # 继承 QMainWindow类和 Ui_MainWindow界面类def __init__(self, parent=None):super(MyMainWindow, self).__init__(parent)  # 初始化父类self.setupUi(self)  # 继承 Ui_MainWindow 界面类def openfile(self):self.action = QFileDialog.getExistingDirectory(self,"choose directory",'D:\pyCharm\test')return
if __name__ == '__main__':app = QApplication(sys.argv)  # 在 QApplication 方法中使用,创建应用程序对象myWin = MyMainWindow()  # 实例化 MyMainWindow 类,创建主窗口myWin.show()  # 在桌面显示控件 myWinsys.exit(app.exec_())  # 结束进程,退出程序

其中最关键的几个点:

1. from third import Ui_MainWindow # 导入图像界面设计文件-------其中third是你保存的ui文件的名称

2.使用了ui中新建的函数openfile()

3.使用了打开文件的函数

QFileDialog.getExistingDirectory(self,"choose directory",'D:\pyCharm\test')

该函数使用时首先在程序开头要

from PyQt5.QtWidgets import QFileDialog

第二要理解该函数里面的三个参数如何使用

第三文件路径必须要写对,单引号,\都要注意,否则运行不出来

第四路径要传给self.action,这里写错也运行不出来

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LINUX客户端client(socket、connect,write)实现客户端发送,服务器接收
  • Docker 镜像 pull 失败(Docker 镜像停止服务解决方法)
  • 第124天:内网安全-代理 Sockets协议路由不出网后渗透通讯CS-MSF 控制上线
  • 无人机之在农业上的用途
  • Java毕业设计-基于SSM框架的少儿编程网上报名系统项目实战(附源码+论文)
  • tensorboard add_text() 停止自动为尖括号标记添加配对的结束括号</>
  • 基于 HTML+ECharts 实现的数据可视化大屏案例(含源码)
  • 云HIS系统源码,业务云协同和数据云协同的数字化医院信息系统
  • 源码拆解SpringBoot的自动配置机制
  • hdfs命令
  • 采集PCM,将base64片段转换为wav音频文件
  • RuoYi-Vue 全新 Pro 版本:清除url地址栏路由参数
  • mysql面试(四)
  • vue 搜索框
  • 【Linux】gcc简介+编译过程
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CentOS7 安装JDK
  • flutter的key在widget list的作用以及必要性
  • JSONP原理
  • Leetcode 27 Remove Element
  • leetcode98. Validate Binary Search Tree
  • maya建模与骨骼动画快速实现人工鱼
  • Python_网络编程
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Sass Day-01
  • Vue.js-Day01
  • 阿里云前端周刊 - 第 26 期
  • 复习Javascript专题(四):js中的深浅拷贝
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 坑!为什么View.startAnimation不起作用?
  • 区块链共识机制优缺点对比都是什么
  • 深度学习中的信息论知识详解
  • 实习面试笔记
  • 手机端车牌号码键盘的vue组件
  • 思考 CSS 架构
  • 新手搭建网站的主要流程
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ### RabbitMQ五种工作模式:
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)STL算法之遍历容器
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)球球大作战
  • (ros//EnvironmentVariables)ros环境变量
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法)N皇后问题
  • (转载)hibernate缓存
  • ****Linux下Mysql的安装和配置
  • .apk 成为历史!
  • .NET CF命令行调试器MDbg入门(一)
  • .net dataexcel winform控件 更新 日志
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .netcore 获取appsettings