当前位置:   article > 正文

Python实现简单的图形化界面 -----Qt GUI_pythonqt图形界面开发

pythonqt图形界面开发

一、Qt 简介以及安装
简单介绍Qt 以及响应的环境安装

Qt 简介
Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。支持通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone, 嵌入式系统 QNX、VxWorks 等等。
Qt下载与安装
在Python中使用PyQt5编写程序可以直接安装PyQt5,不需要安装Qt的开发环境,但是这样就只能使用纯代码写程序。一直以这种方式写MATLAB的GUI程序的我深感界面调整的繁琐,所以还是选择安装Qt的IDE,即Qt Creator采用可视化设计。

二、PyQt5 安装
在命令行下输入pip3 install PyQt5 安装Python依赖库。
也可以使用清华镜像网站,指令是:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5

三、在PyCharm中直接编写代码创建GUI
代码如下:

  1. import sys
  2. from PyQt5 import QtCore, QtGui, QtWidgets
  3. app = QtWidgets.QApplication(sys.argv) # 创建app
  4. widgetHello = QtWidgets.QWidget() # 创建窗体,选择QtWidget类
  5. widgetHello.resize(280, 150) #设置窗体大小
  6. widgetHello.setWindowTitle("Demo") # 设置窗体名称
  7. LabHello = QtWidgets.QLabel(widgetHello) # 创建标签,指定父容器
  8. LabHello.setText('Hello,World') # 设置标签内容
  9. font = QtGui.QFont() # 创建字体font对象
  10. font.setBold(True) # 加粗
  11. font.setPointSize(12) # 字号
  12. LabHello.setFont(font) # 设置标签字体
  13. size = LabHello.sizeHint() # 获取最佳位置
  14. LabHello.setGeometry(70,60,size.width(),size.height()) # 设置标签位置
  15. widgetHello.show() # 显示窗体
  16. sys.exit(app.exec_()) # 点菜单关闭才关闭窗口,否则运行完上述代码直接关闭窗口

运行效果:


四、在Qt中创建py文件
打开安装好的Qt Creator,新建项目会得到一个后缀名为.ui的文件。

拖动模板,移动到创建好的面板中,效果图如下:


保存后,可以得到ui文件,可以用记事本打开,其实就是一个XML文件。

为了得到生成的py文件,新建文本,输入pyuic5 -o HelloForm.py HelloForm.ui,这里.ui文件是源文件,py文件是生成的python文件,保存为.bat批处理文件,双击运行,就会发现生成了python代码:

代码如下(示例):

  1. # -*- coding: utf-8 -*-
  2. # Form implementation generated from reading ui file 'HelloForm.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.15.4
  5. #
  6. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  7. # run again.  Do not edit this file unless you know what you are doing.
  8. from PyQt5 import QtCore, QtGui, QtWidgets
  9. import sys
  10. class Ui_Form(object):
  11.     def setupUi(self, Form):
  12.         Form.setObjectName("Form")
  13.         Form.resize(400, 300)
  14.         self.label = QtWidgets.QLabel(Form)
  15.         self.label.setGeometry(QtCore.QRect(140, 110, 111, 16))
  16.         self.label.setObjectName("label")
  17.         self.pushButton = QtWidgets.QPushButton(Form)
  18.         self.pushButton.setGeometry(QtCore.QRect(140, 150, 92, 28))
  19.         self.pushButton.setObjectName("pushButton")
  20.         self.retranslateUi(Form)
  21.         QtCore.QMetaObject.connectSlotsByName(Form)
  22.     def retranslateUi(self, Form):
  23.         _translate = QtCore.QCoreApplication.translate
  24.         Form.setWindowTitle(_translate("Form", "Form"))
  25.         self.label.setText(_translate("Form", "Hello World"))
  26.         self.pushButton.setText(_translate("Form", "Close"))
  27. #########################调用方法###################################
  28. app = QtWidgets.QApplication(sys.argv)
  29. baseW = QtWidgets.QWidget()
  30. ui = Ui_Form()
  31. ui.setupUi(baseW)
  32. baseW.show()
  33. sys.exit(app.exec_())
  34. # 定义了一个类,用于实现创建的GUI 不需要传入任何参数
  35. # setupUi 方法用于GUI的初始化 需要传入QtWight对象,该对象需要
  36. # retranslateUi 方法用于设置GUI所有文字部分,便于多语言的设置
  37. # 使用方法: 创建QApplication对象->创建QWidget对象->创建Ui_Form对象
  38. # ->Ui_Form对象初始化


这里其实是将我们刚刚画好的GUI封装成了一个类,当我们实现这个类的对象时,会生成相应的GUI。

添加上面最后一部分的代码,运行得到:

本次分享到此结束,感谢大家的阅读,觉得有所帮助的朋友点点关注点点赞! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/968750
推荐阅读
相关标签
  

闽ICP备14008679号