01菜单栏


import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIconclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):exitAct = QAction(QIcon('exit.png'), '&Exit', self)exitAct.setShortcut('Ctrl+Q')exitAct.setStatusTip('Exit application')exitAct.triggered.connect(qApp.quit)self.statusBar()menubar = self.menuBar()fileMenu = menubar.addMenu('&File')fileMenu.addAction(exitAct)self.setGeometry(300, 300, 300, 200)self.setWindowTitle('Simple menu')self.show()app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

02菜单栏++

import sys
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QAction
from PyQt5.QtWidgets import qApp
from PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import QIconclass Demo(QMainWindow):def __init__(self):# 重新执行父类的初始化方法(默认的一些操作)super().__init__()# 加入自定义方法self.initUI()def initUI(self):# 设置菜单的图标exitAct = QAction(QIcon('exit.png'),'&Exit', self)exitAct.setShortcut('Ctrl+Q')exitAct.setStatusTip('Exit application')exitAct.triggered.connect(qApp.quit)self.statusBar()menubar = self.menuBar()file_menu = menubar.addMenu('&File')file_menu.addAction(exitAct)self.setGeometry(300,300,300,300)self.setWindowTitle('简单的菜单')self.show()app = QApplication(sys.argv)
ex = Demo()
app.exec()

03简单的窗口(细致分析)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Created by xiaoming# 本模块的功能:<># 这个简单的小例子展示的是一个小窗口。但是我们可以在这个小窗口上面做很多事情,改变大小,最大化,最小化等,这需要很多代码才能实现。这在很多应用中很常见,没必要每次都要重写这部分代码,Qt已经提供了这些功能。PyQt5是一个高级的工具集合,相比使用低级的工具,能省略上百行代码。# 导入一些需要的模块
import sys
# 这里面引入了qtwidgets模块,其中包含了基本的用户界面控件
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget# 创建app对象
app = QApplication(sys.argv)
# 每个pyqt5应用都必须创建一个应用对象
# sys.argv是一组命令行参数的列表
# python可以在shell里运行,这个参数提供对脚本控制的功能
w = QWidget()
# qwidget是用户控件中的基本控件,提供了基本的应用构造器
# 默认情况下,构造器没有父级,没有父级的构造器称为窗口(window)
w.resize(250,450)
# resize这个方法能够改变控件的大小,这里的意思的窗口宽250px,高450px
w.move(300,200)
# move()是修改控件位置的方法.他把控件放置到屏幕坐标的(300,200位置)
# 注:屏幕坐标的原点是屏幕的左上角
w.setWindowTitle('我的第一个窗口')
# 这里给这个窗口添加了一个标题,标题在标题栏展示
# 虽然看起来是废话,但是以后回学习到各种栏,还是要注意一下,多了就懵逼了
w.show()
# show()能让控件在桌面上显示出来.控件在内存中创建,之后才能在显示器上显示出来
sys.exit(app.exec())
# 最后,我们进入了应用的主循环中,事件处理器这个时候开始工作.
# 主循环从窗口上接收事件,并把事件传入到派发到应用控件里.
# 当调用exit()方法或者直接销毁主控件时,主循环就会结束
# sys.exit()方法能确保主循环安全退出.外部环境能通知主控件怎么结束# exec_()之所以有个下划线,是因为exec是一个python的关键字

04带窗口图标


# 首先还是要导入对应的模块
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget
from PyQt5.QtGui import QIcon# 之前的例子是过程式编程,python当然支持面向对象编程
# 创建一个类
class Test(QWidget):def __init__(self):super().__init__()self.initUI()  # 使用initUI方法创建了一个GUI'''面向对象编程最重要的三个部分是类(class),数据和方法.我们创建了一个类的调用,这个类继承自QWidget.这个就意味着,我们调用了两个构造器,一个是这个类本身的,一个是这个类继承的super()构造器方法返回父级的对象.__init()方法是构造器的一个方法.俗称初始化魔术方法'''def initUI(self):self.setGeometry(300, 200, 700, 400)self.setWindowTitle('标题起啥都行')self.setWindowIcon(QIcon('logo.png'))'''上面三个方法都是继承自QWidget类.setGeometry() 有两个作用: 把窗口放到屏幕上并且设置窗口大小.参数分别代表屏幕坐标的x y 和窗口大小的长和宽setWindowTitle就是设置标题内容,不用多说也就是说这个方法是 resize()和move()的合体.最后一个方法就是添加图标,先创建一个QIcon对象,然后接受一个路径主辅材作为参数,显示图标'''self.show()yingyong = QApplication(sys.argv)
ex1 = Test()
sys.exit(yingyong.exec_())# 应用和示例的对象创立,主循环开始

05提示框


# 导入模块
import sysfrom PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QToolTip
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import QFont# 来直接来一个类
class Demo(QWidget):    #继承自QWidget# 初始化魔术方法直接上def __init__(self):# 父类的方法还原super().__init__()# 执行自己的方法self.initUI()def initUI(self):# 这个字体的话,系统中有的都行QToolTip.setFont(QFont('微软雅黑',15))# 这个 例子中,我们创建 了一个提示框self.setToolTip('不信了还<b>这是一个啥玩意</b>')# 这个高,实在是高# html中的标签也能应用样式# 强,实在是强btn = QPushButton('点我',self)# 这个静态方法设置了提示框的字体,我们使用了15px的微软雅黑的字体btn.setToolTip('君不见黄河之水<br>天上来')# 调用setTooltip()创建提示框可以使用富文本格式的内容btn.resize(btn.sizeHint())btn.move(50,70)self.setGeometry(200,150,800,450)self.setWindowTitle('标题就是没有标题')# 显示self.show()app = QApplication(sys.argv)
ex1 = Demo()
sys.exit(app.exec_())

06关闭窗口


# 本模块的功能:<>
'''
TODO 要做的可多了
'''
# 关闭一个窗口最直观的方式就是点击标题栏的那个×,这个例子里面
# print(我们展示的是如何用程序关闭一个窗口)
# print(这里我们将解除)到一点single和slots的知识
# 本例子使用的是QPushButton组件类
# QPushButton(string text,Qwidget parent = None)
# text参数是想要显示的按钮名称,parent参数是放在按钮上的组件
# 在我们的例子里面,这个参数是QWidget.应用中的组件都是一层一层(继承而来的)
# 在这个层里,大部分的组件都有自己的父级,没有父级的组件,是顶级的窗口# 还是tmd要导入对应的包和模块
import sysfrom PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QApplicationfrom PyQt5.QtCore import QCoreApplication
# 程序需要QtCore对象# 上来先来一个类
class Example(QWidget):# 初始化魔术方法def __init__(self):super().__init__()self.initUI()def initUI(self):qbtn = QPushButton('退出就退出',self)# 创建一个继承自 QPushButton 的按钮.# 第一个参数是按钮的文本,第二个参数是按钮的父级组件# 这个例子中,父级组件就是我们创建的继承自QWidget 的 Example 类qbtn.clicked.connect(QCoreApplication.instance().quit)# 事件传递系统在PyQt5内建的single和slot机制里面.点击按钮之后,信号会被捕捉并给出既定的反应# QCoreApplication包含了事件的主循环,它能添加和删除所有的事件# instance()创建 了一个它的实例.# QCoreApplication是在QApplication里创建的# 点击事件和能终止进程并退出应用的quit函数绑定在了一起.# 在发送者和接受者之间建立了通讯,发送者就是按钮,接受者就是应用对象qbtn.move(50,50)self.setGeometry(300,200,250,150)self.setWindowTitle("退出按钮练习")# 显示self.show()yingyong = QApplication(sys.argv)
ex1 = Example()
sys.exit(yingyong.exec_())
# 这里创建了一个点击之后就退出窗口的按钮

07消息盒子


# 导入模块
import sys
from PyQt5.QtWidgets import  QWidget
from PyQt5.QtWidgets import  QMessageBox
from PyQt5.QtWidgets import  QApplication# 创建一个类
class Example(QWidget):def __init__(self):super().__init__()# 执行自己的函数self.initUI()def initUI(self):self.setGeometry(300,200,250,150)self.setWindowTitle('消息盒子')self.show()def closeEvent(self, QCloseEvent):reply = QMessageBox.question(self, '消息啊哈!',"你确定你要退出了",QMessageBox.yes | QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:QCloseEvent.accept()else:QCloseEvent.ignore()app = QApplication(sys.argv)
demo = Example()
app.exec_()

UI文件生成demo01模块(主窗口)

test.py代码如下:

import sys
from PyQt5.QtWidgets import *
# 导入生成的 py模块
from demo01 import *
# 创建app
app = QApplication(sys.argv)
# 实例化主窗口对象
w = QMainWindow()
# 实例化并调用初始化方法
Ui_MainWindow().setupUi(w)
# 显示窗口
w.show()
sys.exit(app.exec_())
pass

PyQt5案例汇总(简洁版)相关推荐

  1. PyQt5案例汇总(完整版)

    个人博客点这里 PyQt5案例汇总(完整版) 起步 PyQt5是一套绑定Qt5的应用程序框架.他在Python 2.x和3.x中都是可用的.该教程使用的是Python3.x. Qt库是一套最有用的GU ...

  2. 3.【CSS复合选择器、元素显示模式display、背景background所有】 简洁版小米侧边栏案例

    本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! b站视频链接:https://www.bilibili.com/video/BV14J4114768. 笔记参考大佬:https:/ ...

  3. 综合案例:王者荣耀背景图片,王者荣耀背景图片二,简洁版小米侧边栏,五彩导航

    王者荣耀背景图片 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...

  4. ES业界优秀实践案例汇总

    ES业界优秀案例汇总 携程 LinkedIn Etsy国外电商 CPU(vCore) 70*32 1000*12 4200 单日索引数据条数 600亿 500亿 100亿 单核处理数据性能/天 260 ...

  5. jQuery 效果——显示隐藏/滑动/淡入淡出/自定义动画||事件切换——简洁版滑动下拉菜单

    jQuery 效果 显示隐藏效果 <!DOCTYPE html> <html lang="en"><head><meta charset= ...

  6. Python面向对象案例汇总

    Python面向对象案例汇总 简介 Python是一门面向对象的语言,用这种思想为指导设计的程序,把数据和对数据的操作封装在一起组成类,通过类来创建对象,通过对象之间的交互来实现程序的功能. 定义个空 ...

  7. YAML基础知识及搭建一台简洁版guestbook

    一,前言 前面我们已经搭建过简易版k8s集群了,在此基础上可以搭建一个简洁版guestbook ,以便来学习k8s创建pod的整个过程. 二,在此之前,我们还需要学习一下YAML基础知识 YAML 基 ...

  8. kaggle (02) - 房价预测案例(进阶版)

    房价预测案例(进阶版) 这是进阶版的notebook.主要是为了比较几种模型框架.所以前面的特征工程部分内容,我也并没有做任何改动,重点都在后面的模型建造section Step 1: 检视源数据集 ...

  9. 简洁版即时聊天---I/O多路复用使用

    一.基于select接口+有名管道的I/O 多路复用 1.注意提示点: 1.基于客户端以及服务器两端的使用 2 .对于有名管道,须注意有名管道的链接顺序,否则,可能发生死锁,或链接不成功. 3.学会s ...

最新文章

  1. 网易伏羲三项研究入选CVPR:AI感知表情能力将达到人类水平
  2. 火热物联网下,中国传感器的冷思考
  3. 9-7NOIP模拟赛总结
  4. vtuber面部捕捉工具_泰国程序员开发VTuber形象生成系统,人人都能当虚拟偶像
  5. android自定义minitype,MiniType部类以及扩展名
  6. Qt Creator语义突出显示
  7. 简单的FTP应用程序
  8. 各种排序笔记---基于比较排序部分
  9. 在 Windows 服务中托管 ASP.NET Core
  10. 从前端view到数据访问逻辑的思维导图
  11. 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
  12. [转载] 使用hexo+github搭建免费个人博客详细教程
  13. java 调用net remoting_获取 org.springframework.remoting.RemoteAccessException: 在进行调用时无法访问远程服务?...
  14. Python学习手册之Python异常和文件
  15. cdr怎么把矩形去掉一个边_如何把一个矩形的四个角变形?
  16. 培育共识信用土壤 起航数字经济海洋
  17. git rebase(变基)操作演示
  18. linux之sed命令详解
  19. c语言按姓名查询出入信息,请问c语言如何实现按姓名查找?
  20. 在Linux中安装ALSA声卡驱动

热门文章

  1. X264学习笔记(1)
  2. 很多人喜欢露脚踝你觉得时尚吗?
  3. linux_bash_shell_cheat_sheet(自译)
  4. iPhone屏幕尺寸/launch尺寸/icon尺寸
  5. Android(java)学习笔记144:网络图片浏览器的实现(ANR)
  6. android源码包下载
  7. Sublime text 入门学习资源篇及其基本使用方法
  8. hdu 1159(最长公共子序列)
  9. LINUX内核之普通自旋锁
  10. 希捷宣布出货双碟装1TB硬盘 单碟500GB上市