PyCharm结合Python2.7+PyQt4 实现Python GUI程序 (开发图形化界面)

本文详细介绍了如何使用PyQt4在Python2.7环境下搭建GUI界面,包括PyQt4的安装、配置过程,利用QtDesigner进行界面设计,以及将设计的UI文件转换为Python代码,并最终将程序打包成exe文件的步骤。
部署运行你感兴趣的模型镜像

Tkinter是python内置的GUI实现模块,但需要手动去搭建组件,调整样式。PyQt实现了类似Qt creator的功能,可以直接在界面通过拖动的方式调整类似于按钮、输入框等,很大的简化了使用。鉴于自己安装的是python2.7,所以使用PyQt4版本。

1. 安装

1.1 python2.7

1.2 开发环境 Pycharm

1.3 PyQt4

    PyQt4 下载链接 https://sourceforge.net/projects/pyqt/files/PyQt4/

    PyQt4 Python2.7 Windows *64版 下载链接https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.9.4/ 

    也可以pip install (如果你安装上的话,反正博主pip 是死活成功不了)

     (PyQt5 下载链接https://sourceforge.net/projects/pyqt/files/PyQt5/

如下图:一定选好版本

 

2. 配置

打开Pycharm,File ->Settings ->Tools ->External Tools,添加扩展组件

! 注意PyUIC 这个操作是有中间的Arguments的!

  -m PyQt4.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 

添加完成后,在Tools ->External Tools查看是否添加成功

3、点击QtDesigner,会跳出Qt Designer设计界面

此时就可以在该窗口进行GUI设计了

设计完成UI界面后,保存UI文件到文件夹路径,  这个路径很重要,不要保存错了,不然后面转换的时候,会找不到UI文件路径  我是在工程中新建了一个UI文件夹,专门存放.ui文件   注意:这个路径和上面那个Py  uic的配置的Working Directory的路径要保持一致

UI文件转Py文件   右键UI文件选择Py UIC  然后会自动生成一个Py文件
 

 

4、最后-代码调用自动生成的.py UI文件

      这个是生成的.py代码

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ui-a.ui'
#
# Created: Wed Jun 12 17:14:40 2019
#      by: PyQt4 UI code generator 4.9.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_firstMainWindow(object):
    def setupUi(self, firstMainWindow):
        firstMainWindow.setObjectName(_fromUtf8("firstMainWindow"))
        firstMainWindow.resize(556, 444)
        firstMainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.centralwidget = QtGui.QWidget(firstMainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.queren = QtGui.QPushButton(self.centralwidget)
        self.queren.setGeometry(QtCore.QRect(430, 360, 93, 28))
        self.queren.setObjectName(_fromUtf8("queren"))
        firstMainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(firstMainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 556, 23))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        firstMainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(firstMainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        firstMainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(firstMainWindow)
        QtCore.QMetaObject.connectSlotsByName(firstMainWindow)

    def retranslateUi(self, firstMainWindow):
        firstMainWindow.setWindowTitle(QtGui.QApplication.translate("firstMainWindow", "UI设计师", None, QtGui.QApplication.UnicodeUTF8))
        self.queren.setText(QtGui.QApplication.translate("firstMainWindow", "确认", None, QtGui.QApplication.UnicodeUTF8))

if  __name__=="__main__":
    import  sys
    reload(sys)                                 #
    sys.setdefaultencoding( "utf-8" )           # 这两步是为了解决print中文报ascii编码错误

    app=QtGui.QApplication(sys.argv)
    widget= QtGui.QMainWindow()
    ui= Ui_firstMainWindow()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())

 

一定在最下面加入以下代码,然后运行,即可看到效果


if  __name__=="__main__":
    import  sys

    reload(sys)                                 #
    sys.setdefaultencoding( "utf-8" )           # 这两步是为了解决print中文报ascii编码错误
    
    app=QtGui.QApplication(sys.argv)
    widget= QtGui.QMainWindow()
    ui= Ui_firstMainWindow()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())

5、最后,需要把py文件转换成exe执行程序文件

把py文件和图标(必须要  .ico 格式的,可以在线转)放在同一个文件下

cd 到相应的目录下,执行:

pyinstaller -F -i 1.ico 2.py  或

pyinstaller.exe  -w -F xx\xx\xxx.py


(默认运行时有终端黑窗口,加 -m 会取消黑窗口)

-w: 直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽掉命令框(调试阶段可不加-w, 最终发布时加入-w参数)

-F: 这里是大写。使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹

-p :这个指令后面可以增加pyinstaller搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径。不过经过笔者测试,site-packages目录下都是可以被识别的,一般不需要再手动添加

-i 指令

表示可执行文件的图标,后面跟着图标文件

 

执行完成后,在dist文件下会生成exe文件,点击执行

 

 

 

 

 

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

代码转载自:https://pan.quark.cn/s/7f503284aed9 Hibernate的核心组件总数达到五个,具体包括:Session、SessionFactory、Transaction、Query以及Configuration。 这五个核心组件在各类开发项目中都具有普遍的应用性。 借助这些组件,不仅可以高效地进行持久化对象的读取与存储,还能够实现事务管理功能。 接下来将通过图形化的方式,逐一阐述这五个核心组件的具体细节。 依据所提供的文件内容,可以总结出以下几个关键知识点:### 1. SSH框架详细架构图尽管标题提及“SSH框架详细架构图”,但在描述部分并未直接呈现关于SSH的详细内容,而是转向介绍了Hibernate的核心接口。 然而,在此我们可以简要概述SSH框架(涵盖Spring、Struts、Hibernate)的核心理念及其在Java开发中的具体作用。 #### Spring框架- **定义**:Spring框架是一个开源架构,其设计目标在于简化企业级应用的开发流程。 - **特点**: - **分层结构**:该框架允许开发者根据实际需求选择性地采纳部分组件,而非强制使用全部功能。 - **可复用性**:Spring框架支持创建可在不同开发环境中重复利用的业务逻辑和数据访问组件。 - **核心构成**: - **核心容器**:该部分包含了Spring框架的基础功能,其核心在于`BeanFactory`,该组件通过工厂模式运作,并借助控制反转(IoC)理念,将配置和依赖管理与具体的应用代码进行有效分离。 - **Spring上下文**:提供一个配置文件,其中整合了诸如JNDI、EJB、邮件服务、国际化支持等企业级服务。 - **Spring AO...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值