翼度科技»论坛 编程开发 python 查看内容

PyQt5之基础框架解读

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
PyQt5基础框架

前几天为了自己搞一个光学仿真集成
  1. GUI
复制代码
界面,于是去研究了一下
  1. PyQt5
复制代码
不得不说这个模块的使用性远远超过了
  1. tkinter
复制代码
,强烈推荐,于是准备出一个专栏,记录一下
  1. PyQt5
复制代码
学习中遇到的小问题。
这篇先来说说
  1. PyQt5
复制代码
创建时候的基础框架。

代码如下
  1. # -*- coding:utf-8 -*-
  2. import sys
  3. from PyQt5.QtWidgets import QMainWindow, QApplication


  4. class MainWindow(QMainWindow):
  5.     def __init__(self, parent=None):
  6.         super(MainWindow, self).__init__(parent)
  7.         self.resize(600, 300)
  8.         self.status = self.statusBar()
  9.         self.status.showMessage("这是状态提示", 10000)
  10.         self.setWindowTitle("MainWindow界面")


  11. if __name__ == '__main__':
  12.     app = QApplication(sys.argv)
  13.     window = MainWindow()
  14.     window.show()
  15.     sys.exit(app.exec_())
复制代码
以上就是我们
  1. PyQt5
复制代码
主界面的基本框架了,先创建一个类,使用这个类对
  1. QMainWindow
复制代码
类进行继承。

其他语句的解释


    1. self.resize(600,300)
    复制代码
    :对
    1. MainWindow
    复制代码
    进行尺寸调整,横向
    1. 600
    复制代码
    个像素点,纵向
    1. 300
    复制代码
    个像素点。
    1. self.status = self.statusBar()
    复制代码
    :创建一个状态栏对象
    1. self.status.showMessage("这是状态提示", 10000)
    复制代码
    :显示状态栏信息
    1. 10000
    复制代码
    毫秒,即
    1. 10
    复制代码
    秒钟, 其中第一个字符串参数
    1. "这是状态提示"
    复制代码
    是最终显示在状态栏的信息,我们可以自由替换。注意:只有
当我们的鼠标在MainWindow窗口内悬停的时候才会显示该状态信息,并且如果我们想要状态栏一直显示某个信息提示,可以将第二个参数的10000改为-1即可

    1. self.setWindowTitle("MainWindow界面")
    复制代码
    :设定
    1. MainWindow
    复制代码
    主界面的名称。
    1. app = QApplication(sys.argv)
    复制代码
    :初始化
    1. PyQt5
    复制代码
    中的各个部分,之后我们就可以调用模块中的各个元素。类似与
    1. Pygame
    复制代码
    模块中的
    1. Initialization
    复制代码
    部分。
    1. sys.argv
    复制代码
    :这个语句存在仅仅是为了将来我们可以在命令行中写入参数进行读取,如果我们不考虑在命令行中进行直接调用,可以将初始化程序改为
    1. app = QApplication([])
    复制代码

    1. window = MainWindow()
    复制代码
    :实例化我们定义好的窗口类对象。
    1. window.show()
    复制代码
    :这句话必须存在,否则运行时我们写好的
    1. Gui
    复制代码
    界面不会显示。用来显示我们写好的
    1. Gui
    复制代码
    界面。
    1. sys.exit(app.exec_())
    复制代码
    1. sys.exit()
    复制代码
    表示退出程序操作,
    1. app.exec_()
    复制代码
    类似于
    1. tkinter
    复制代码
    模块中定义
    1. Gui
    复制代码
    界面时进行的
    1. Mainloop()
    复制代码
    ,即开始执行主循环体,配合
    1. sys.exit()
    复制代码
    退出命令可以在我们退出程序时清空内存,达到洁净模式。

最终运行后的效果

如下:


PyQt5框架BUG


如图所示TreeWidget, 添加了事件监听itemSelectionChanged, 当点击port行不松开鼠标, 鼠标挪动到items后, 触发的是port行的事件, 光标却是停留在items, 然后再点击items时, 不会触发新的事件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/python/31618524q.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具