前言
PyQt相对于一些其他的Gui编辑库相对来说资料更加的全面,其实应用的最多的应该是C++的吧,但是Python比起C++更简单,所以还是安安心心的学PyQt吧。
1 简介
首先介绍一下PyQt中的主要组成部分,分别是Core、Gui和Widgets。
QtCore:
包含非核心的GUI功能,此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程
QtGui:
包括窗口系统集成、事件处理、二维图形、基本成像、字体和文本
QtWidgets:
基本空间都位于该模块当中,例如按键、文本框、等等。
PyQt中想要创建一个Gui程序,则最基本的是需要生成一个界面来放置各种的空间,这个基本的界面主要分为三种,分别是
Main Window
主界面通常用来充当整个程序的基本界面,该种类型的窗口在其上面会有一栏功能按键,可以设置通常我们在软件中看到的菜单等样式的工具。
这种玩意。
Widget
Widget是基本窗口,可以放置各种类型的控件,没什么特点就是最普通的一种。和主窗口看起来没有太大的区别,就是不能设置菜单栏那种样子的空间。
Dialog
Dialog是通常看到的弹出消息窗口,该类型窗口弹出后不能点击其他的窗口,就是那种弹出一个消息问你确定还是取消的东西。
2 创建
使用Pyqt来编写Gui界面,除了可以用代码来硬写之外,还可以使用Qtdesinger来进行图形化编写,使用Qtdesinger时,左侧工具栏会有基本控件,只需要拖动到创建好的窗口中就可以,但是较为复杂的控件还是需要自己手动敲代码编写。
放置好控件之后,保存会是以ui文件的形式。这时候需要使用PyUIC工具来将其转化为Py文件才能在Pycharm中打开。
打开转化完成的Python文件,可以看到整个界面是以一个类的形式编写的,这时候是不能直接运行的。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(496, 420)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(90, 0, 291, 411))
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap("../../Picture/filename_H128PIC (2).jpg"))
self.label.setScaledContents(True)
self.label.setObjectName("label")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName