PyQt是一个抽象的工具包,如果使用底层的工具包(Win32 MFC)来实现相同的功能,这个示例代码就会增加很多。
Python同时支持面向过程和面向对象编程。
PyQt编程的精髓是面向对象编程。
一、窗口类型
QMainWindow主窗口(顶层窗口)为用户提供一个应用程序框架,它有自己的布局,可以在布局中添加控件。在主窗口中可以添加控件,比如将工具栏、菜单栏和状态栏、标题栏等,是最常见的窗口形式,也可以说是GUI程序的主窗口。
QWidget可作为顶层窗口也可嵌入到其他窗口。基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口和控件都直接或者间接继承自QWidget类。
QDiaglog是对话框窗口的基类。对话框主要用来执行短期任务或者与用户进行互动,模态和非模态。没有菜单栏
QDiaglog类的子类主要有QMessageBox、QFileDialog、QFontDialog、QInputDialog等。
模态窗口:程序在未处理完当前对话框时,将阻止和对话框的父窗口进行交互。模态窗口关闭后,仍可以读取模态窗口的信息,如窗口的返回状态。
非模态窗口:可以和其他窗口交互。关闭该窗口,将释放窗口的所有资源,无法得到窗口的任何信息。
加图标的方面(即界面上添加一个小的图标):
加个.ico文件,百度搜:ICO图标CUR光标制作 百度应用,制作一个备用;
程序代码中输入
if __name__=="__main__":
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("./img/monkey.ico"))
myWin = MainWindow()
myWin.show()
sys.exit(app.exec_())
出现问题:NameError: name 'QIcon' is not defined。
解决问题:因为QIcon属于QtGui。
pip install QtGui,安装成功后
加入from PyQt5 import QtGui
代码编写:
from PyQt5 import QtGui
if __name__=="__main__":
app = QApplication(sys.argv)
# app.setWindowIcon(QtGui.QIcon("./img/monkey.ico"))
#在这里发现,不一定需要.ico文件,.png文件也可以直接使用
app.setWindowIcon(QtGui.QIcon("./img/monkey.png"))
myWin = MainWindow()
myWin.show()
sys.exit(app.exec_())
d. 搞定