使用 Qt designer

使用 Qt designer

  • 1、配置Qt designer外部工具
  • 2、Qt designer(Qt 设计师)使用
    • 2.1 创建保存文件ui
    • 2.2 `pyuic5.exe 工具` 转化成为py文件
    • 2.3 直接导入UI文件
  • 2、qrc资源管理器

1、配置Qt designer外部工具

实质就是 Qt\bin 工具中 designer.exe

在这里插入图片描述

请查看 PyQt5开始入门、pyQt5 + pycharm 已经说明

2、Qt designer(Qt 设计师)使用

在这里插入图片描述

2.1 创建保存文件ui

文件apptest.ui 这个就是 PyQt5 的布局文件;

在这里插入图片描述
文件apptest.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>MainWindow</class><widget class="QMainWindow" name="MainWindow"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>MainWindow</string></property><widget class="QWidget" name="centralwidget"/><widget class="QMenuBar" name="menubar"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>22</height></rect></property></widget><widget class="QStatusBar" name="statusbar"/></widget><resources/><connections/>
</ui>

2.2 pyuic5.exe 工具 转化成为py文件

可以使用 pyuic5.exe 工具 转化成为 apptest.py文件(查看 PyQt5开始入门、pyQt5 + pycharm):

pyuic5 apptest.ui -o apptest.py

文件apptest.py

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'apptest.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, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(800, 600)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, 800, 22))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)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

添加main入口使用:

if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

2.3 直接导入UI文件

uic.loadUi(r'C:\Users\Administrator\Desktop\apptest.ui', self) 导入UI文件
from PyQt5.uic import loadUi

  • UI文件中<widget class="QMainWindow" name="MainWindow"> 默认self;对应代码class Ui_MainWindow(QMainWindow)
  • 其他widget可直接通过name使用,例如self.statusbar.showMessage('Ready')
    再举例添加菜单栏self.menubar.addAction(openAct)

apptest.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-import sysfrom PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QFileDialog
from PyQt5.uic import loadUiclass Ui_MainWindow(QMainWindow):def __init__(self):super().__init__()loadUi(r'C:\Users\Administrator\Desktop\apptest.ui', self)self.setupUi()def setupUi(self):print("setupUI")self.resize(800, 600)self.statusbar.showMessage('Ready')self.menuBarUI()QtCore.QMetaObject.connectSlotsByName(self)def menuBarUI(self):openAct = QAction(self.menubar)openAct.setCheckable(False)openAct.setObjectName('openFileAction')openAct.triggered.connect(self.opendir)openAct.setText('打开')self.menubar.addAction(openAct)def opendir(self):dir = QFileDialog.getExistingDirectory(self, r"Open Directory","./",QFileDialog.ShowDirsOnly| QFileDialog.DontResolveSymlinks)print(str(dir))if __name__ == '__main__':app = QApplication(sys.argv)ui = Ui_MainWindow()ui.show()sys.exit(app.exec_())

2、qrc资源管理器

**qrc文件:**更多查看 PyQt5 资源管理

<!DOCTYPE RCC>
<RCC version="1.0"><qresource><file>images/icon.ico</file></qresource>
</RCC>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sublime快速替换

1、快速查找 ControlShiftF,可以快速查找或替换某些值 2、批量在行首或者行尾添加字符串的方法 ①选中要操作的行&#xff0c;全选就按CtrlA&#xff1b;②使用快捷键CtrlShiftL 3、快速删除换行符 选中需要操作的行&#xff08;不选择则表示全选&#xff09;Ctrl H 调出…

wpf prism使用

目录 1.Nuget中安装prism框架&#xff1a; 2.改造程序启动入口 3.View和ViewModel自动关联 4.绑定 5.Command 6.Event Aggregator&#xff08;事件聚合器&#xff09;、消息通知 7.弹窗、对话服务 DialogService 8.Region区域 9.Navigation导航 10.module 模块 1.Nug…

清洁机器人规划控制方案

清洁机器人规划控制方案 作者联系方式Forrest709335543qq.com 文章目录 清洁机器人规划控制方案方案简介方案设计模块链路坐标变换算法框架 功能设计定点自主导航固定路线清洁区域覆盖清洁贴边沿墙清洁自主返航回充 仿真测试仿真测试准备定点自主导航测试固定路线清洁测试区域…

【C++技能树】Vector类解析与模拟实现

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我bua&#xff01; Vector 0.Vector简介1.Vector常用接口1.1constructor构造函数1.2 iteratorsort与findfindsort 1.3 Capacity相关接口1.4 Modify相关接口 2. Vector模拟实…

linux:secureCRT通过pem证书远程访问服务器

参考&#xff1a; secureCRT通过pem证书远程访问服务器_Fengshana的博客-CSDN博客 总结&#xff1a; 配置公钥即可

STM32 串口发送数据、串口中断 7.19

STM32 串口发送&#xff1a; 全双工 异步 串行通信方式IIC&#xff1a; CLK&#xff08;时钟线&#xff09; DAT&#xff08;数据线&#xff09;同步协议&#xff1a;通过时钟线保证数据线是有效的 异步协议&#xff1a;通过寄存器接受到数据之后产生中断&#xff0c;从而传输…

前端vue uni-app仿美团下拉框下拉筛选组件

在前端Web开发中&#xff0c;下拉筛选功能是一种非常常见的交互方式&#xff0c;它可以帮助用户快速选择所需的选项。本文将介绍如何利用Vue.js和uni-app框架来实现一个高效的下拉筛选功能。通过使用这两个强大的前端框架&#xff0c;我们可以轻松地创建具有响应式用户操作的下…

Sublime Text 4 激活教程(Windows+Mac)

下载安装 官网 https://www.sublimetext.com 点击跳转 2023.7.21 版本为4143 Windows激活方式 一、激活License方式 入口在菜单栏中"Help” -> “Enter License” 注意格式&#xff0c;可能会过期失效&#xff0c;失效就用方式二 Mifeng User Single User License E…

Linux底层

一. arm基础知识 基础&#xff1a;c语言 具有一定硬件基础 特点---》前后联系 arm目标&#xff1a; 看懂简单的汇编代码 会看电路图、芯片手册 学会如何用软件控制硬件思想 解决问题的办法 谈谈对嵌入式的理解&#xff1f; 以计算应用为中心&#xff0c;软硬件可裁剪的…

JVM Optimization Learning(二)

一、Run-time data areas PC ▪ Each Java Virtual Machine thread has its own pc (program counter) register. ▪ At any point, each Java Virtual Machine thread is executing the code of a single method, namely the current method for that thread. ▪ If that m…

数据库 - RDBMS

1、什么是数据库&#xff1f; 数据库是一种用于存储和管理数据的系统或软件。它是结构化数据的集合&#xff0c;以便于访问、管理和更新。数据库可用于在计算机系统中组织、存储、检索和处理大量数据。 数据库通常由一组相关的数据表组成&#xff0c;每个表都有特定的列和行&…

mybatis学习笔记之使用javassist生成类

文章目录 使用javassist动态生成类使用javassist动态生成类并实现接口实现接口中所有的方法工具类GenerateDaoProxy的编写 使用javassist动态生成类 Testpublic void testGennerateFirstClass() throws Exception{//获取类池&#xff0c;这个类池就是用来生成class的ClassPool …

Cloudreve搭建云盘系统,并实现随时访问

文章目录 1、前言2、本地网站搭建1.环境使用2.支持组件选择3.网页安装4.测试和使用5.问题解决 3、本地网页发布1.cpolar云端设置2.cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#xff0c;一时间公…

C#之委托

目录 一、简介 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;类与委托 二、声明委托 三、使用委托 &#xff08;一&#xff09;创建委托对象 &#xff08;二&#xff09;使用委托 四、简单的委托示例 五、Action[T]和Func[T]委托 六、多播委托 七、匿…

ONNX Runtime 加速深度学习(C++ 、python)详细介绍

ONNX Runtime 加速深度学习(C 、python)详细介绍 本文在 https://blog.csdn.net/u013250861/article/details/127829944 基础上进行了更改&#xff0c;感谢原作&#xff01; ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式的推理框架&#xff0c…

妙记多 Mojidoc PC端(Mac 端+windows端)Beta版本正式上线!

你们呼唤了无数次的妙记多 Mojidoc PC客户端 Beta版本正式上线啦&#xff01; 感谢300位妙友积极参与内测&#xff0c;给予了我们很多非常有效的意见和建议&#xff01;我们会根据用户反馈不断优化和修复相关功能&#xff0c;在此感谢妙友们一直以来的支持&#xff5e; PC端拥…

SkyWalking链路追踪中span全解

基本概念 在SkyWalking链路追踪中&#xff0c;Span&#xff08;跨度&#xff09;是Trace&#xff08;追踪&#xff09;的组成部分之一。Span代表一次调用或操作的单个组件&#xff0c;可以是一个方法调用、一个HTTP请求或者其他类型的操作。 每个Span都包含了一些关键的信息&am…

numpy 笔记 partition和

1 partition 对数组进行部分排序&#xff0c;返回的是数组本身的部分排序结果 1.1 使用方法 numpy.partition(a, kth, axis-1, kindintroselect, orderNone) 1.2 参数说明 a输入的数组kth分割点&#xff0c;前kth的元素会按照部分排序的顺序排列&#xff0c;而在kth之后的…

小程序 methods方法互相调用 this.onClickCancel is not a function

背景 做了一个自定义的弹出对话窗口&#xff0c;主要是自定义一些文本颜色。 问题 但是点击按钮事件&#xff1a;取消与确认&#xff0c;调用了同一个接口&#xff0c;然后想着走不同方法&#xff0c;需要调用methods其他方法。然后报错了&#xff1a; VM1081 WAService.js:…