zoukankan      html  css  js  c++  java
  • GUI学习之一——PyQt5初识

    我们在第〇篇里先演示了GUI的功能,其实Python有多个库是支持GUI编程的,python官网列出了大量的说明,其中包括了原生的tkinter

    还有许多第三方库

    Pyqt

    PySide

    wxPython

    PyGUI

    Kivy.....等等

    选库标准

    首先,我们要明白,对任意一个库来说,都是没有最好的,只由最合适的,所以我们要结合这几点来来选择最适合自己的库:

    1.简单好用

    2.功能强大

    3文档齐全,方便查询

    4.性能强劲

    5.稳定性高

    6.生态支持

    7.跨平台支持

    8.开源免费.

    除了上述的几点外,还有两点非常重要

    可以看看软件版本和最近的更新时间,尽可能避开最小的版本号的和很久没有更新的,因为版本号太小是刚出的,有可能很多BUG都没有暴露出来,而太久没有更新的已经没有技术支持了,在大型的项目里一旦出了问题太难维护。

    基于以上标准对比,我选择了PyQt5。

    什么是PyQt?

    PyQt本质上还是Qt,是一个用C++写的一个跨平台的GUI开发框架。而PyQt是Qt用Python进行了绑定,在保留原有的API时实现了原有的所有功能。所以一旦掌握了PyQt后再掌握了C++的基本语法可快速接受Qt的使用。

    而现在使用的PyQt5,是Python对Qt5.x版本的绑定,完美的支持了Python3.x。

    GUI编程要学习什么?

    1.各种控件的特性和使用 

    2.控件的样式

    3.资源的加载

    4.控件的布局

    5.事件和信号

    6.动画特效

    7.界面跳转

    8.设计工具的使用

    9.额外的东西

    我们把设计工具放在最后,就是在学会代码的时候利用QtDesigner之类的工具优化我们的编程流程,就是为了防止我们先会用设计工具忽略代码的方法。

    PyQt5库结构

    QtWidgets包含了一整套UI元素,用于建立符合系统风格的界面

    QtGui 涵盖了多种基本图形功能的类:字体、图形、图标、颜色等

    QtCore 涵盖了包的核心非GUI功能:时间、文件、目录、数据类型、文本流、连接、线程进程等

    这三个是最长用的类,后面的我们以后有时间再讲

    还有一个模块:Qt,是把所有的类综合到一个模块里。好处就是不用关心哪个模块里有哪些类,但是由于加载了所有的类,比较吃内存,适合新手学习时候使用。

    下面用一个最简单的代码分析一下PyQt5程序基本结构

    from PyQt5.Qt import *
    import sys
    app= QApplication(sys.argv)
    
    window = QWidget()
    window.setWindowTitle('first GUI')
    window.resize(500,500)#窗口大小
    window.move(0,0)#窗口位置
    
    lable = QLabel(window)
    lable.setText('Hello World!')
    lable.move(200,200)
    
    window.show()
    sys.exit(app.exec_())
    First_GUI
    from PyQt5.Qt import *
    import sys   #导入模块
    app = QApplication(sys.argv)#创建应用程序
    window = QWidget()
    
    window.show()#控件操作
    
    sys.exit(app.exec_())#开始执行应用程序并进入消息循环(无限循环)

     注意通过app.exec_(),启动了一个无限循环,在这个循环里不断监听和用户的交互信息。

    在控件操作的时候,常规方式就是先建立一个界面的父控件,再针对这个父控件建立按钮、标签等控件,完成后调用父控件的显示功能。

  • 相关阅读:
    C#程序之Main()方法
    JavaScript引用类型之RegExp类型(正则表达式)
    正则表达式之量词(重复出现)?、*、+
    正则表达式一元字符与字符组
    正则表达式简介
    yii自动登录
    Yii学习
    改变Yii2的默认路由
    extract()函数
    html5标签figure、figcaption
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/10584974.html
Copyright © 2011-2022 走看看