PyQt5入门1——PyQt5的安装与Hello World应用

news2024/9/29 5:30:23

PyQt5入门1——PyQt5的安装与Hello World应用

  • 学习前言
  • 简介(From 百度百科)
  • 安装
  • Hello World
    • 1、窗口构建
      • a、构建基础类
      • b、编写UI
    • 2、主程序运行
  • 全部代码

学习前言

搞搞可视化界面哈,虽然不一定有用,但是搞一下。
在这里插入图片描述

简介(From 百度百科)

PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。

PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。

安装

PyQt5使用pip安装即可,不太推荐使用其它的方式安装。
使用pip会自动根据你的Python版本来选择合适的 PyQt5 版本,如果是手动下载源码安装很容易出错,pip安装方便快速哈。
由于在国内,使用国内镜像也快一些。

pip3 install PyQt5 -i https://pypi.douban.com/simple

如果anaconda有对应的虚拟环境,需要首先激活虚拟环境再进行安装,Ubuntu下也是如此。
在这里插入图片描述

Hello World

我们创建一个像这样的简单界面,标题是Hello World!内容也是。
在这里插入图片描述

1、窗口构建

a、构建基础类

QWidget类是所有用户界面对象的基类。

窗口构建需要基于QWidget类,我们将它作为父类继承下来,重写其__init__方法,在__init__方法中调用初始化UI的函数。

class Example(QWidget):
    def __init__(self):
        QWidget.__init__(self)
    
        #-----------------------------#
        #   界面显示相关内容
        #-----------------------------#
        self.initUI()

    def initUI(self):
        pass

b、编写UI

上一步并未完成UI编写,我们在这里创建一个简单的UI,一个是标题上的Hello World,一个是PyQt5中的Hello World。
在PyQt5中,使用self.setWindowTitle可以设置UI的标题。
另外,我们可以导入QTextBrowser来写文本,使用.move方法移动文本,使用.resize缩放窗口,具体可参考下方:

def initUI(self):
    #-----------------------------#
    #   初始化标题,界面大小
    #-----------------------------#
    self.resize(640, 480)
    self.setWindowTitle('Hello World!')

    #-----------------------------#
    #   写一段话
    #   放到10,10
    #   拉伸长度为620,200
    #-----------------------------#
    self.text_browser = QTextBrowser(self)
    self.text_browser.move(10,10)
    self.text_browser.resize(620,200)
    self.text_browser.setText("Hello World again!")

2、主程序运行

这个是调用上述创建的Example,细节不必纠结,只需要知道这样便可以调用PyQt5即可。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

全部代码

import sys

from PyQt5.QtWidgets import (QApplication, QWidget, QTextBrowser)


class Example(QWidget):
    def __init__(self):
        QWidget.__init__(self)
    
        #-----------------------------#
        #   界面显示相关内容
        #-----------------------------#
        self.initUI()

    def initUI(self):
        #-----------------------------#
        #   初始化标题,界面大小
        #-----------------------------#
        self.resize(640, 480)
        self.setWindowTitle('Hello World!')

        #-----------------------------#
        #   写一段话
        #   放到10,10
        #   拉伸长度为620,200
        #-----------------------------#
        self.text_browser = QTextBrowser(self)
        self.text_browser.move(10,10)
        self.text_browser.resize(620,200)
        self.text_browser.setText("Hello World again!")

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

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

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

相关文章

Makefile实战

文章目录 1、准备环境1.2、规则1.3、假目标1.4、变量1.5、自动变量1.6、函数addprefix 函数filter函数filter-out函数patsubst函数strip函数wildcard函数 1、准备环境 准备一台Linux机器,验证环境中是否呗正确安装了,使用make -v命令进行验证 1.2、规则 …

React中useState的setState方法请求了好多次

1、问题描述 最近在写react的时候碰到了一个很奇怪的问题。 可以看到那个getXXX()的方法一直不断的被调用,网页一直请求,根本停不下来了。 2、产生原因 要弄明白这个原因,首先要先了解一下react生命周期。 react是组件式的编程,一…

青岛大学_王卓老师【数据结构与算法】Week04_01_循环链表_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

GO SDK使用说明

简介 欢迎使用腾讯云开发者工具套件(SDK)3.0,SDK 3.0 是云 API 3.0 平台的配套工具。SDK 3.0 实现了统一化,各个语言版本的 SDK 具备使用方法相同、接口调用方式相同、错误码和返回包格式相同等优点。本文以 GO SDK 3.0 为例&…

chatgpt赋能python:用Python编写BMI计算器,实现身体指数(BMI)的快速计算和分析

用Python编写BMI计算器,实现身体指数(BMI)的快速计算和分析 在当今的健康意识逐渐增强的时代,身体指数(BMI)成为了一个非常重要的健康指标。BMI是根据身高和体重计算出来的数值,用于评估一个人…

java pdf2html 和html2pdf 两款插件

1 pdf2html docker 启动,java 调用服务即可转化 https://beltxman.com/2567.html docker run -ti --rm -v ~/pdf:/pdf -w /pdf docker.io/pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-ubuntu-20.04-x86_64 test.pdf 2 html2pdf java .Runtime 类型调用命…

超详细讲解在Ubuntu 20.04上安装ROS Noetic Ninjemys并测试

文章目录 前言安装STEP-1: 配置Ubuntu软件仓库STEP-2: 设置sources.listSTEP-3: 设置密钥STEP-4: 更新Ubuntu软件包确保安装索引是最新的STEP-5: 执行安装命令STEP-6: 配置ROS环境 测试ROS 前言 ROS是Robot Operating System的缩写, 即机器人操作系统, ROS是一组软件库和工具&…

LR录制https协议脚本前配置

LR录制https安全协议脚本前的设置 在IE中添加安全证书 打开IE浏览器,选择“工具—Internet选项—内容”,点击“证书”导入相应的证书,如下图 在LR中配置证书 获取pem格式证书 因为loadrunner只支持pem格式的证书,所以要将证书…

uniapp监听手机侧滑返回事件。

这篇文章是应一个粉丝的需求更新的!你们看我多宠粉! 若在App首页,点击手机物理返回键,此时无返回页面可关闭,uni-app默认会提示“再按一次退出应用”;若想自定义退出信息,如修改为:…

Arthas (阿尔萨斯)arthas-boot 方式安装及使用教程

目录 一、软件介绍二、下载教程三、安装教程四、使用教程 一、软件介绍 Arthas 地址:https://github.com/alibaba/arthas 官方文档:https://alibaba.github.io/arthas Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类…

ProGuard 进阶系列(四)访问者模式

在进行后面的内容分析之前,不得不讲到访问者模式,这是 GOF 23 个设计模式中最难的几个模式之一。如果能够很好的理解访问者模式, 后续源码解读会相对容易一些。本文将结合 ProGuard 的部分源码,理解分析访问者模式的用途及使用场景…

单相逆变原理验证仿真

为了用全桥控制一个电感中的电流跟踪指令电流,simulink图如下图1: 图1 前向通道传递函数,闭环伯德图如下: s tf(s); %LC及并联电阻R的值 L1*10^-3; R10; %调制限号到占空比的传递函数,dVcont/Vramp -> d/Vcont 1/Vramp1Kcd …

JavaWeb 笔记——1

JavaWeb 笔记-1 初始JavaWeb什么是JavaWeb 一、JDBC1.1、JDBC简介1.2、API详解-DriverManager1.3、API详解-Connection1.4、API详解-Statement1.5、API详解-ResultSet1.6、API详解-PreparedStatement1.6.1、API详解-PreparedStatement-SQL注入演示1.6.2、API详解-PreparedState…

NR PDCP(二) format/parameters

这篇主要是PDCP PDU,PDCP Formats及其参数的含义, 收发过程中用到的变量,常量和定时器的总结,都是概念性描述。 PDU 和RLC 类似,PDCP PDU 也分为data pdu 和control PDU。PDCP data PDU 的data field对应的是user pla…

FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持

目录 1、前言2、我这儿已有的 FPGA USB 通信方案3、CY7C68013A芯片解读和硬件设计FX2 简介SlaveFIFO模式及其配置 4、工程详细设计方案5、vivado工程6、上板调试验证7、福利:工程代码的获取 1、前言 目前USB2.0的实现方案很多,但就简单好用的角度而言&a…

SpringBoot的缓存管理

缓存是分布式系统中的重要组件,主要解决数据库数据的高并发访问问题。在实际开发中,尤其是用户 访问量较大的网站,为了提高服务器访问性能、减少数据库的访问压力、提高用户体验,使用缓存显得 尤为重要。Spring Boot对缓存提供了良…

js将后台返回的数据转化为树形结构(扁平数组转树状结构)

前言 做项目使常遇到需要将后台返回的数据,转换为树状结构给用户展现,例如: 这也是前端面试常考的算法题,一起来检测一下吧。 步骤 准备一个空的树对象。遍历列表中的每个元素。对于每个元素,根据该元素的父级ID找到…

Linux常用命令——fdisk命令

在线Linux命令查询工具 fdisk 查看磁盘使用情况和磁盘分区 补充说明 fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝…

ERP重构-SLA子分类账-分布式实现方案

背景 ERP中的GL总账模块,明细数据来源于各个业务模块如库存、成本、应收、应付、费控、资产等,统称为子模块,生成的账叫做子分类账。然而记账的业务逻辑各式各样,但是最终输出都是来源、类型、期间、科目、借贷金额等等关键信息。…

Java-数据结构(二)-Map:HashMap、TreeMap、LinkedHashMap

目录 一、 引言二、问题2.1 什么是Map2.2 使用Map的好处2.3 Map的底层原理2.4 Key和Value的含义2.5 Key值为什么不能重复2.6 Key值和Hash的关系 三、 HashMap3.1 初始化HashMap3.2 添加和获取元素3.3 遍历HashMap3.4 删除元素3.5实现原理①HashMap的put()方法②HashMap的get()方…