写在前面的话
最近想学习一下桌面程序开发,可是MFC臃肿复杂界面难看,而WPF无法跨平台,似乎只剩下了QT这一个选择。本来想借着学习Python热情,看看python下有木有什么好看的图形库,怎奈我用的python3.* 不支持wxpython(才疏学浅,知道的库实在太少),于是误入tkinter大坑,终于在学习tkinter的过程中听说了PyQt这个好东西。
可惜pyqt5的教程实在太少,有哪些好的教程希望大牛们指教。
刚刚配好环境PyQt5+python3+pycharm开发环境配置,把今天的学习笔记机上先!
Qt(C++) 与PyQt
这里,顺面比较一下PyQt与普通Qt(C++)生成程序的区别。一般而言,两者速度没有可比性,但是,速度在这里不是主要问题,原因在于PyQt的核心也就是Qt库,那是用C++写的,这样,一般而言不会占用太多时间的逻辑代码速度慢点,也不会成为瓶颈。同时,在使用方式上,PyQt并没有失去Python的优雅语法,快速开发的能力。
第一个窗口
import sys
from PyQt5 import QtWidgets
#pyqt窗口必须在QApplication方法中使用
app=QtWidgets.QApplication(sys.argv)
label=QtWidgets.QLabel("<p style='color: red; margin-left: 20px'><b>hell world</b></p>") #qt支持html标签,强大吧
#有了实例,就需要用show()让他显示
label.show()
sys.exit(app.exec_()) #消息结束的时候,进程结束,并返回0,接着调用sys.exit(0)退出程序
from PyQt5 import QtWidgets
#从PyQt库导入QtWidget通用窗口类
class mywindow(QtWidgets.QWidget):
#自己建一个mywindows类,以class开头,mywindows是自己的类名,
#(QtWidgets.QWidget)是继承QtWidgets.QWidget类方法,
def __init__(self):
super(mywindow,self).__init__()
import sys
app = QtWidgets.QApplication(sys.argv)
windows = mywindow()
label=QtWidgets.QLabel(windows) #在窗口中绑定label
label.setText("hello world")
windows.show()
sys.exit(app.exec_())