用python来开发图形界面,确实不是很方便,没有c#,Java,甚至VB来得容易。几个控件拖拽,然后响应事件。

用python写脚本,或者web service来处理一般工作,绰绰有余。

但有的时候,脱离开发环境,脱离服务器,还是GUI程序更单纯。

Python支持多种图形界面的第三方库,包括:

Tk,wxWidgets,Qt,GTK等等。

Tk(Tkinter)是Python自带的库,使用Tkinter,无需安装任何包,就可以直接使用。

PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。

一般的框架,需要熟悉很多的API,PyQt也能实现类似c#一样GUI开发, 只需要拖拽控件,无需熟记太多的API。

本文就探索用pycharm 和 PyQt5 开发python GUI程序。

1. 配置环境。

a. 下载并安装QtDesigner。

b. 将QtDesigner集成到Pycharm中,如图:

编写代码。

PyQt的核心就是信号与槽。

先拖拽几个控件,通过上图定义的工具,就可以轻松的定义UI.

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(800, 600)

self.centralwidget = QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.label = QtWidgets.QLabel(self.centralwidget)

self.label.setGeometry(QtCore.QRect(180, 80, 47, 13))

self.label.setObjectName("label")

self.label_2 = QtWidgets.QLabel(self.centralwidget)

self.label_2.setGeometry(QtCore.QRect(390, 130, 47, 13))

self.label_2.setObjectName("label_2")

self.pushButton = QtWidgets.QPushButton(self.centralwidget)

self.pushButton.setGeometry(QtCore.QRect(190, 150, 75, 23))

self.pushButton.setObjectName("pushButton")

MainWindow.setCentralWidget(self.centralwidget)

self.menubar = QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))

self.menubar.setObjectName("menubar")

MainWindow.setMenuBar(self.menubar)

self.statusbar = QtWidgets.QStatusBar(MainWindow)

self.statusbar.setObjectName("statusbar")

MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):

_translate = QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

self.label.setText(_translate("MainWindow", "show"))

self.label_2.setText(_translate("MainWindow", "TextLabel"))

self.pushButton.setText(_translate("MainWindow", "PushButton"))

然后定义一个main函数调用一下。

import sys

from passlevel.first import Ui_MainWindow

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtCore import pyqtSlot

class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow):

def __init__(self):

super(MyWindow, self).__init__()

self.setupUi(self)

@pyqtSlot()

def on_pushButton_clicked(self):

print("hello")

if __name__ == '__main__':

app = QtWidgets.QApplication(sys.argv)

mywindow = MyWindow()

mywindow.show()

sys.exit(app.exec_())

运行成功。打包。

安装一个pyinstaller

pip install pyinstaller

然后运行命令:

pyinstaller -F -w yourscript

参数说明:

-F 表示生成单个可执行文件

-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!

-p 表示你自己自定义需要加载的类路径,一般情况下用不到

-i 表示可执行文件的图标

最终效果就是这样子的。

作者简介:

Snake, 人称安蜀黍,专职软件测试10几年,测试界的老司机。

更多精彩,请关注微信公众号:python爱好部

python写前端图形界面_Python图形界面开发相关推荐

  1. python复杂美观的图形界面_Python图形界面美化的方法论

    很多人都吐槽,使用 Tkinter.PyQt5等工具制作出来的图形界面程序太丑了.既然觉得它丑,我们来想想,它为什么会那么丑. 文章目录 功能性是开发的第一要务 模块提供的都是原生组件 界面的美化的几 ...

  2. python实现监控数据界面_python 监控界面

    MySQL MTOP - 开源 MySQL 企业监控系统 MySQLMTOP是一个由Python+PHP开发的MySQL企业级监控系统.系统由Python实现多进程数据采集和告警,PHP实现WEB展示 ...

  3. 用Python写前端是什么体验?

    Anaconda公司在最近的PyConUS2022发布了PyScript,引发轰动...... 1 PyScript简介 PyScript是一个框架,允许用户在浏览器中使用HTML的界面和Pyodid ...

  4. python做个后端系统_Python做后端开发的优势

    ​ Python做后端开发的优势 1. Python开发人员的背景丰富多彩,阵营规模很大,这直接导致了Python的各种lib比Ruby多很多很多很多 2. 和Ruby相反,Python的哲学是&qu ...

  5. python写前端图形界面_如何Tkinter模块编写Python图形界面

    一.为何使用Tkinter而非PyQt 众所周知,在Python中创建图形界面程序有很多种的选择,其中PyQt和wxPython都是很热门的模块包,这些第三方的图形界面模块功能强大.配置丰富,界面美观 ...

  6. python制作软件界面_Python图形界面GUI程序设计

    1.GUI是什么? 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 图形用户界面是一种人与计算机通信的界面显 ...

  7. python软件运行界面_python运行界面 python的图形用户界面怎么运行

    为什么用Python开发界面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...

  8. python 写一个带有菜单界面_python菜单界面

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python中有多个图形界面开发的库,一般我们会见到用到的有tkinter,p ...

  9. python简单可视化聊天界面_Python可视化界面

    可视化界面程序,本来不想写,只在console台运行就好,但是后来很多小伙伴都有这样的需求: 需要从redis中删除某个key的value,然后需要跟key去查,有些小伙伴不会用redis,就产生如下 ...

  10. python写前端代码_python学习之路前端-JavaScript

    JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...

最新文章

  1. 为品牌管理增加检索名称和状态项
  2. 【Verilog HDL 训练】第 03 天
  3. redis指定配置文件启动_深入学习 Redis 集群搭建方案及实现原理
  4. STM32 电机教程 22 - 基于ST MCLIB无感FOC算法变有感(HALL)FOC算法
  5. 开源视频会议bigbluebutton
  6. ExtJs 备忘录(4)—— Form表单(四) [ 数据提交 ]
  7. 漫步微积分三十八——流体静力学
  8. xml文件操作小结(3)---selectsinglenode方法中的xpath%%%%转自酷网动力(www.ASPCOOL.COM)。...
  9. C++ 从入门到入土(English Version)Section 8 : Recursion, Searching and Backtracking
  10. checked exception和runtime exception and error
  11. 提示wininet.dll文件找不到的解决
  12. 计算机在心理学实验中的应用举例,E-Prime在心理学实验中的应用 曾祥炎
  13. 小米5短接点 | 小米红米高通短接9008教程视频教程 | 高通9008驱动下载 | 不拆机怎么直接进9008 | 什么线能直接进9008
  14. Unknown column 'hghefsdhjd' in 'where clause'
  15. 使用echarts-gl 绘制3D地球配置详解
  16. Android x86安装教程
  17. 使用腾讯云sms短信服务
  18. 罗技无线鼠标接收器无法配对的详细解决办法
  19. 阿里云1+X-云计算开发与运维-中级(判断题)
  20. 汇编语言基础之七- 框架指针的省略(FPO)

热门文章

  1. 两种方式打开jar文件
  2. PSP3000破解原理——缓冲区溢出漏洞随谈
  3. Android apk 系统签名
  4. Linux操作系统原理与应用(陈莉君)——学习笔记
  5. 可以玩java游戏的软件_手机上能玩电脑游戏的软件有哪些 用什么软件可以在手机上玩电脑游戏...
  6. book118免费下载文档方法
  7. PTA Python程序设计-01
  8. 罗克韦尔Studio5000遇上西门子Process Simulate:数字化仿真与虚拟调试案例
  9. USBCAN、CAN分析仪、CANCANFD综合测试分析软件LKMaster主要功能一览
  10. nbu备份脚本 linux,NBU60网络备份大全之Linux设备管理(参考Word)