PyQt5基础练习1

news2024/11/8 13:56:27

0. 本文学习地址

1. PyQt5是由一系列Python模块组成

超过620个类,6000函数和方法。能在诸如Unix、Windows和Mac OS等主流操作系统上运行。

1.1 PyQt5有两种证书

  • GPL
  • 商业证书

2. 实验1 实现简单的窗体

2.1 完整代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial

In this example, we create a simple
window in PyQt5.

author: Jan Bodnar
website: zetcode.com
Last edited: August 2017
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget # 这里引入了PyQt5.QtWidgets模块,这个模块包含了基本的组件。

if __name__ == '__main__':
    app = QApplication(sys.argv) # 每个PyQt5应用都必须创建一个应用对象。sys.argv是一组命令行参数的列表。Python可以在shell里运行,这个参数提供对脚本控制的功能。

    w = QWidget() # QWidge控件是一个用户界面的基本控件,它提供了基本的应用构造器。默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window)
    w.resize(250, 150) 
    w.move(300, 300) # 表示从左上角开始的长,表示高
    w.setWindowTitle('Simple')
    w.show() # show()能让控件在桌面上显示出来。控件在内存里创建,之后才能在显示器上显示出来。

    sys.exit(app.exec_())

2.2 关键点解释

show函数执行后,我们进入了应用的主循环

  • 事件处理器这个时候开始工作。
  • 主循环从窗口上接收事件,并把事件派发到应用控件里。
  • 当调用exit()方法或直接销毁主控件时,主循环就会结束。
  • sys.exit()方法能确保主循环安全退出。
  • 外部环境会收到主控件如何结束的信息。

sys.exit(app.exec_())

exec_()之所以有个下划线,是因为exec是一个Python的关键字。

2.3 关于屏幕的长和宽

是以像素px为单位来表示的

3. 实验2 实现带窗口图标的窗体

3.1 完整代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial

This example shows an icon
in the titlebar of the window.

Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        # 创建GUI页面
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))
        self.show()


# 你想要运行程序,起码写一个入口啊
if __name__ == '__main__':
#     1.实例化应用程序对象
    app = QApplication(sys.argv)
#     2.实例widget对象
ex = Example()
#     3.退出工具
sys.exit(app.exec_())

# if __name__ == '__main__':
#
#     app = QApplication(sys.argv) # 创建应用对象
#     ex = Example() # 创建实例对象
#     sys.exit(app.exec_())

4. 实验3

4.1 完整代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial

This example shows a tooltip on
a window and a button.

Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""

import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,
                             QPushButton, QApplication)
from PyQt5.QtGui import QFont


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        QToolTip.setFont(QFont('SansSerif', 10))

        self.setToolTip('This is a <b>QWidget</b> widget')
        # 这里的内容是button进行设置
        btn = QPushButton('Button', self)
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        btn.resize(btn.sizeHint())
        btn.move(50, 50)

        # 这是对窗体进行设置
        self.setGeometry(300, 300, 300, 200)  # 这条语句相当于resize()和move()两条语句
        self.setWindowTitle('Tooltips')  # 设置好窗口的标题
        self.show()


# 我来写一个程序运行入口
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

#
# if __name__ == '__main__':
#
#     app = QApplication(sys.argv) # 每个PyQt5应用都必须创建一个应用对象
#     ex = Example() # 实例化类对象
#     sys.exit(app.exec_()) # 确保主循环结束后正常结束窗体程序


5. PyCharm编程小技巧

5.1 在编写

在这里插入图片描述
的时候,直接输入main即可得到完整代码

  • 编译器会自动生成该内容

5.2 快速输入代码小技巧

  • tab键是代码补全的功能
  • enter键是插入的功能,在cursor的地方插入东西

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

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

相关文章

专业尖端远心光学,高精度视觉检测解决者

随着机器视觉系统在精密检测领域的广泛应用&#xff0c;在精密光学测量系统中&#xff0c;由于普通光学镜头会存在一定的制约因素&#xff0c;如影像的变形、视角选择而造成的误差、不适当光源干扰下造成边界的不确定性等问题&#xff0c;进而影响测量的精度。为弥补普通镜头应…

155. RESTframe的请求和响应

1.请求和响应 REST framework引入了2个新的对象&#xff1a;Request和Response 1.1 Request 包结构&#xff1a;rest_framework.request.Request 该对象扩展了常规的HttpRequest &#xff0c;增加了对REST框架灵活的请求解析和请求认证的支持 主要属性&#xff1a; data 这个…

基于PHP+MySQL毕业生档案管理系统

毕业生档案管理系统是信息时代的产物&#xff0c;它是学校档案管理部门的一个好帮手。有了它不再需要繁重的纸质登记&#xff0c;有了它档案管理员不在需要繁重的工作&#xff0c;一些成绩信息和奖惩等基本信息可以由管理人员及时的对信息进行查询、更新、修改和删除&#xff0…

SpringBoot_启动原理分析

一共分为三部分来解析: 一 依赖导入原理 二 springboot 包扫描原理三 springboot自动配置原理一 依赖导入原理 父项目进行版本控制 ctrl 点击spring-boot-starter-parent 进入 继续点击,进入spring-boot-dependencies 这里管理着springboot中所有依赖的版本,版本…

38 | Linux 磁盘空间异常爆满

1 场景 收到告警 找到对应的服务器&#xff1a;df -hl 要找到导致磁盘空间满的目录或文件。 2 找占用空间大的目录或文件 2.1方式一 在根目录下&#xff0c;通过du -hs命令&#xff0c;列出各目录所占空间大小 命令&#xff1a;du -hs * 之后再用同样的方法继续到对应目…

[附源码]计算机毕业设计springboot医学图像管理平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

EXSI-NFS实验

A-EXSI-NFS实验 2022年3月25日 8:20 iptables -F iptables-save systemctl stop firewalld #setenforce [0|1]命令修改SELinux当前的运行模式&#xff08;0为禁用&#xff0c;1为启用&#xff09; getenforce Enforcing setenforce 0 getenforce Permissive NFS 两台CentOS 7即…

【车载开发系列】UDS诊断---读取内存($0x23)

【车载开发系列】UDS诊断—读取内存&#xff08;$0x23&#xff09; UDS诊断---读取内存&#xff08;$0x23&#xff09;【车载开发系列】UDS诊断---读取内存&#xff08;$0x23&#xff09;一.概念定义二.注意事项三.报文格式1&#xff09;报文请求2&#xff09;肯定响应3&#x…

一、Node.js 环境安装 (详)

1. 下载Node.js 首先进入node.js官网&#xff0c;选择下载这一项&#xff0c;此时映入眼帘的可以看到有两项LTS(长期维护版本)和Current(最新的版本)&#xff0c;一般在开发会选择左边进行下载安装&#xff0c;具稳定性以及有长期维护。那么下面演示的是64位的Windows操作系统&…

PCI bar 解析

只要是接入系统的 pci 设备就需要和系统软件进行交互&#xff0c;设备和系统之间的交流主要包含以下两部分&#xff1a; 1&#xff0c;系统要能访问到设备的寄存器 用于控制设备行为&#xff0c;包括DMA&#xff0c;数据收发等&#xff1b;设备通过寄存器报告自身的状态&…

Nginx部署vue项目和配置代理

Nginx部署vue项目和配置代理目录概述需求&#xff1a;实现思路分析1.一般前后端分离的项目需要进行跨域2.微服务代理3.vuenginx实现服务端跨域4.网页解析器参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&am…

【问题解决】Android JDK版本不匹配导致崩溃踩坑记录

【问题解决】Android JDK版本不匹配导致崩溃踩坑记录部分机型反馈崩溃问题谷歌回复与解决方案Android打包脱糖操作对比与排查总结前几天同事遇到一个非常诡异的报错&#xff0c;紧急处理后&#xff0c;趁着周末仔细研究了一下原因&#xff0c;觉得还挺有意思的&#xff0c;所以…

制作一个谷歌浏览器插件,实现网页数据爬虫

一、什么是浏览器插件 浏览器插件&#xff0c;基于浏览器的原有功能&#xff0c;另外增加新功能的工具&#xff0c;是可定制浏览体验的小型软件程序&#xff0c;让用户可以根据个人需要或偏好来定制浏览器。 如拦截网页中的广告、划词翻译、倍速视频等等。 Chrome、edge等浏…

WEB前端网页设计 网页代码参数(背景、图片)类

目录 设置圆角 旋转属性&#xff1a; box-sizing属性&#xff1a; 设置背景图像固定background-attachment 设置多重背景图像 鼠标光标形状&#xff1a;cursor ”图片背景“ background-size 背景图片的大小 背景图像的位置 px 无序列表 &#xff1a; 标签 项目符…

解决cocos2d-x-4.0 Android Demo构建遇到的问题

环境 硬件&#xff1a;macbook pro 四核Intel Core i7系统&#xff1a;macOS Big Sur 11.4.2、 xcode Version 13.1 、cmake 3.20.5软件&#xff1a;iterm2 Build 3.4.8、zsh 5.8、Android Studio Dolphin | 2021.3.1cocos2d-x v4 &#xff1a; 官方下载压缩包 http://cocos2d…

讲点登录业务

1.单点Session 通过判断用户是否有服务器赋予的session_id&#xff0c;点对点服务器的用户信息&#xff0c;确认用户身份 缺点&#xff1a; 单点性能压力大无法扩展&#xff0c;如果是分布式的话&#xff0c;其他的服务怎么进行认证呢&#xff1f; 2.Redis解决共享问题 我们…

JavaWeb(四)

前言 在学习JSP之前&#xff0c;首先咱们要了解的是&#xff0c;学这个语言有什么用&#xff0c;这个语言用在哪里呢&#xff1f; 这就要从咱们的MVC框架开始讲起 MVC模式是一种软件架构模式&#xff0c;对于我这种软件工程专业的人来说&#xff0c;真的是逃离不了学这个东西。…

Java_题目_学生管理系统_注册登录忘记密码

学生管理系统升级版 Java_题目_学生管理系统_业务分析并搭建主菜单_查询添加删除修改 需求&#xff1a; ​ 为学生管理系统书写一个登陆、注册、忘记密码的功能。 ​ 只有用户登录成功之后&#xff0c;才能进入到学生管理系统中进行增删改查操作。 分析&#xff1a; 登录…

微信小程序自动化测试实践(附 Python 源码)| 实战系列

为什么要进行小程序自动化测试 随着微信小程序的功能和生态日益完善&#xff0c;很多公司的产品业务形态逐渐从 App 延升到微信小程序、微信公众号等。小程序项目页面越来越多&#xff0c;业务逻辑也越来越复杂&#xff0c;全手工测试已无法满足快速增长的业务需求。 然而&am…

LL(1)文法的核心原理

来自编译原理课本&#xff0c;课本上讲的非常好&#xff0c;这里用我自己的方法再讲述一下。 讨论范围&#xff1a;2型文法&#xff0c;产生式的左边只有一个非终结符号。&#xff08;这样才能构建树&#xff09; 用语法树去进行巨型分析的时候会遇到的问题&#xff1a;多个候…