博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5用户GUI制作(初识pyqt5)
阅读量:3898 次
发布时间:2019-05-23

本文共 7207 字,大约阅读时间需要 24 分钟。

PyQt5介绍

pyqt5是一套Python绑定Digia QT5应用的框架。它可用于Python 2和3。本教程使用Python 3。Qt库是最强大的GUI库之一。pyqt5的官方网站http:。
pyqt5的类别分为几个模块,包括以下:

  • QtCore
  • QtGui
  • QtWidgets
  • QtMultimedia
  • QtBluetooth
  • QtNetwork
  • QtPositioning
  • Enginio
  • QtWebSockets
  • QtWebKit
  • QtWebKitWidgets
  • QtXml
  • QtSvg
  • QtSql
  • QtTest

QtCore:包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程。

QtGui包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。
qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类。
QtMultimedia包含的类来处理多媒体内容和API来访问相机和收音机的功能。
Qtbluetooth模块包含类的扫描设备和连接并与他们互动。描述模块包含了网络编程的类。这些类便于TCP和IP和UDP客户端和服务器的编码,使网络编程更容易和更便携。
Qtpositioning包含类的利用各种可能的来源,确定位置,包括卫星、Wi-Fi、或一个文本文件。
Enginio模块实现了客户端库访问Qt云服务托管的应用程序运行时。
Qtwebsockets模块包含实现WebSocket协议类。
QtWebKit包含一个基于Webkit2图书馆Web浏览器实现类。
Qtwebkitwidgets包含的类的基础webkit1一用于qtwidgets应用Web浏览器的实现。
QtXml包含与XML文件的类。这个模块为SAX和DOM API提供了实现。
QtSvg模块提供了显示SVG文件内容的类。可伸缩矢量图形(SVG)是一种描述二维图形和图形应用的语言。
QtSql模块提供操作数据库的类。
QtTest包含的功能,使pyqt5应用程序的单元测试
安装pyqt5

pip install pyqt5pip install pyqt5-tools

简单例子:

import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QIconimport sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtGui import QIconclass Example(QWidget):    def __init__(self):        super().__init__()        self.initUI()  # 界面绘制交给InitUi方法    def initUI(self):        # 设置窗口的位置和大小        #self.setGeometry(positionX, PositionY, Length, width)        self.setGeometry(300, 300, 300, 200)        # 设置窗口的标题        self.setWindowTitle('python pyqt5 learning')        # 设置窗口的图标,引用当前目录下的web.png图片        self.setWindowIcon(QIcon('python.jpg'))        # 显示窗口        self.show()if __name__ == '__main__':    # 创建应用程序和对象    app = QApplication(sys.argv)    execute = Example()    sys.exit(app.exec_())

在这里插入图片描述

按钮及提示语

import sysfrom PyQt5.QtWidgets import QWidget, QToolTip,QPushButton, QApplicationfrom PyQt5.QtGui import QFont, QIconclass Example(QWidget):    def __init__(self):        super().__init__()        self.initUI()    def initUI(self):        # 这种静态的方法设置一个用于显示工具提示的字体。我们使用10px滑体字体。        QToolTip.setFont(QFont('SansSerif', 10))        # 创建一个提示,我们称之为settooltip()方法。我们可以使用丰富的文本格式        self.setToolTip('This is a QWidget widget')        # 创建一个PushButton并为他设置一个tooltip        btn = QPushButton('Button', self)        btn.setToolTip('This is a QPushButton widget')        # btn.sizeHint()显示默认尺寸        btn.resize(btn.sizeHint())        # 移动窗口的位置        btn.move(50, 50)        self.setGeometry(300, 300, 300, 200)        self.setWindowTitle('python pyqt5 learning')        self.setWindowIcon(QIcon('python.jpg'))        self.show()if __name__ == '__main__':    app = QApplication(sys.argv)    execute = Example()    sys.exit(app.exec_())

在这里插入图片描述

关闭窗口

import sysfrom PyQt5.QtWidgets import QWidget, QToolTip,QPushButton, QApplicationfrom PyQt5.QtGui import QFont, QIconfrom PyQt5.QtCore import QCoreApplicationclass Example(QWidget):    def __init__(self):        super().__init__()        self.initUI()    def initUI(self):        # 这种静态的方法设置一个用于显示工具提示的字体。我们使用10px滑体字体。        QToolTip.setFont(QFont('SansSerif', 10))        # 创建一个提示,我们称之为settooltip()方法。我们可以使用丰富的文本格式        self.setToolTip('This is a QWidget widget')        # 创建一个PushButton并为他设置一个tooltip        btn1 = QPushButton('Button', self)        btn1.setToolTip('This is a QPushButton widget')        btn2 = QPushButton('Quit', self)        btn2.setToolTip('This is a Quit widget')        # btn.sizeHint()显示默认尺寸        btn1.resize(btn1.sizeHint())        btn2.resize(btn2.sizeHint())        # 移动窗口的位置        btn1.move(50, 50)        btn2.move(180, 50)		btn2.clicked.connect(QCoreApplication.instance().quit)        self.setGeometry(300, 300, 300, 200)        self.setWindowTitle('python pyqt5 learning')        self.setWindowIcon(QIcon('python.jpg'))        self.show()if __name__ == '__main__':    app = QApplication(sys.argv)    execute = Example()    sys.exit(app.exec_())

在这里插入图片描述

关闭窗口

import sysfrom PyQt5.QtWidgets import QWidget, QToolTip,QPushButton, QApplication, QMessageBoxfrom PyQt5.QtGui import QFont, QIconfrom PyQt5.QtCore import QCoreApplicationclass Example(QWidget):    def __init__(self):        super().__init__()        self.initUI()    def initUI(self):        # 这种静态的方法设置一个用于显示工具提示的字体。我们使用10px滑体字体。        QToolTip.setFont(QFont('SansSerif', 10))        # 创建一个提示,我们称之为settooltip()方法。我们可以使用丰富的文本格式        self.setToolTip('This is a QWidget widget')        # 创建一个PushButton并为他设置一个tooltip        btn1 = QPushButton('Button', self)        btn1.setToolTip('This is a QPushButton widget')        btn2 = QPushButton('Quit', self)        btn2.setToolTip('This is a Quit widget')        # btn.sizeHint()显示默认尺寸        btn1.resize(btn1.sizeHint())        btn2.resize(btn2.sizeHint())        # 移动窗口的位置        btn1.move(50, 50)        btn2.move(180, 50)        btn2.clicked.connect(self.closeEvent)        self.setGeometry(300, 300, 300, 200)        self.setWindowTitle('python pyqt5 learning')        self.setWindowIcon(QIcon('python.jpg'))        self.show()    def closeEvent(self, event):        reply = QMessageBox.question(self, 'Message',                                     "Are you sure to quit?", QMessageBox.Yes |                                     QMessageBox.No, QMessageBox.No)        if reply == QMessageBox.Yes:            event.accept()        else:            if event:                event.ignore()if __name__ == '__main__':    app = QApplication(sys.argv)    execute = Example()    sys.exit(app.exec_())

在这里插入图片描述

窗口在屏幕中间显示

import sysfrom PyQt5.QtWidgets import (QWidget, QToolTip,QPushButton, QApplication,                             QMessageBox,QDesktopWidget)from PyQt5.QtGui import QFont, QIconfrom PyQt5.QtCore import QCoreApplicationclass Example(QWidget):    def __init__(self):        super().__init__()        self.initUI()    def initUI(self):        # 这种静态的方法设置一个用于显示工具提示的字体。我们使用10px滑体字体。        QToolTip.setFont(QFont('SansSerif', 10))        # 创建一个提示,我们称之为settooltip()方法。我们可以使用丰富的文本格式        self.setToolTip('This is a QWidget widget')        # 创建一个PushButton并为他设置一个tooltip        btn1 = QPushButton('Button', self)        btn1.setToolTip('This is a QPushButton widget')        btn2 = QPushButton('Quit', self)        btn2.setToolTip('This is a Quit widget')        # btn.sizeHint()显示默认尺寸        btn1.resize(btn1.sizeHint())        btn2.resize(btn2.sizeHint())        # 移动窗口的位置        btn1.move(50, 50)        btn2.move(180, 50)        btn2.clicked.connect(self.closeEvent)        self.setGeometry(300, 300, 300, 200)        self.setWindowTitle('python pyqt5 learning')        self.setWindowIcon(QIcon('python.jpg'))        self.center()        self.show()    def closeEvent(self, event):        reply = QMessageBox.question(self, 'Message',                                     "Are you sure to quit?", QMessageBox.Yes |                                     QMessageBox.No, QMessageBox.No)        if reply == QMessageBox.Yes:            event.accept()        else:            if event:                event.ignore()    # 控制窗口显示在屏幕中心的方法    def center(self):        # 获得窗口        qr = self.frameGeometry()        # 获得屏幕中心点        cp = QDesktopWidget().availableGeometry().center()        # 显示到屏幕中心        qr.moveCenter(cp)        self.move(qr.topLeft())if __name__ == '__main__':    app = QApplication(sys.argv)    execute = Example()    sys.exit(app.exec_())

转载地址:http://aaben.baihongyu.com/

你可能感兴趣的文章
结构体最后定义一个char p[0];这样的成员有何意义(转)
查看>>
一步一学Linux与Windows 共享文件Samba (v0.2b)
查看>>
Linux 下忘记root密码怎么办
查看>>
Linux软件下载源码编程文章资料周立发--之调试
查看>>
GIT分支管理是一门艺术
查看>>
Cscope在emacs中的配置与使用
查看>>
emacs 2.4安装问题 ecb
查看>>
ecb里使用自定义快捷键切换窗口
查看>>
vim(gvim)支持对齐线
查看>>
CentOS编译安装Lighttpd1.4.28
查看>>
实践HTTP206状态:部分内容和范围请求
查看>>
【C++基础】拷贝构造函数的参数必须是引用类型
查看>>
【C++基础】virtual析构函数
查看>>
【Java基础】面向对象
查看>>
【Java.Web】web.xml详解
查看>>
J2EE的技术体系
查看>>
【Java.Web】Java Web应用程序的规范目录结构,*WEB组件的URL/入口*
查看>>
【基础篇】计算机网络
查看>>
OSI 7层详解
查看>>
【C++基础】重载overload、重写(覆盖)override、隐藏hide的区别
查看>>