• PyQt5入门


     PyQt5 是用来创建Python GUI应用程序的工具包。作为一个跨平台的工具包,PyQt可以在所有主流操作系统上运行(Unix,Windows,Mac)。

    本文描述Windows系统下如何安装Python + PyCharm + PyQt5,并通过PyQt5 采用 两种方式设计GUI界面。a.直接使用代码设计界面;b. 先使用QtDesigner进行可视化设计,然后将生成的.ui文件转换成.py文件。

    安装Python + PyCharm + PyQt5

    1、安装Python

    访问官网https://www.python.org/,下载并安装你的目标Python版本。

    2、安装PyQt5

    1)进入cmd界面。执行命令 pip install pyqt5 pyqt5-tools ,等待一会儿,命令执行完毕后PyQt5就安装好了。

    在安装过程中可能会报下面错误,找不到对应的pyqt5-tools版本。

      Collecting pyqt5-tools
      Could not find a version that satisfies the requirement pyqt5-tools (from versions: )
    No matching distribution found for pyqt5-tools

    由于作者电脑上原来安装了2016年某个版本的python3.5 ,幸运的把pip install pyqt5 pyqt5-tools 一次执行完毕,全部安装完了。不过后来更新到python3.5.4和python3.7时都遇到了这个问题。python3.5.4在更新PIP到最新版本后,问题貌似也消失了。python3.7没有再去解决。

    2)在python 自带的IDLE中试验一下pqyt5是否真的装好了。

    新建文件 firstPython.py 并输入如下代码

    #####################################

    import sys  
      
    from PyQt5 import QtWidgets, QtCore  
      
    app = QtWidgets.QApplication(sys.argv)  
    widget = QtWidgets.QWidget()  
    widget.resize(400, 100)  
    widget.setWindowTitle("This is a demo for PyQt Widget.")  
    widget.show()  
      
    exit(app.exec_()) 

    #####################################

    运行后弹出如下界面,表示PyQt已经正常工作啦。

    如果不幸没有弹出GUI窗口,而且提示错误:ImportError: DLL load failed: 找不到指定的模块。

    据说这是由于缺少了合适的python3.dll,可以通过去python.org 下载所需版本的python安装包并安装,然后从安装目录中拷贝python3.dll文件,和自己使用的python3x.dll放在同一级目录下即可。

    作者自己原来安装的python3.5就是挂在了这一步,然后直接删了重新安装python3.5.4,又遇到了上面1)的问题。升级pip版本后莫名过关。建议大家按照上面建议的解决方式操作。

    3、安装PyCharm

    1)访问官网http://www.jetbrains.com/pycharm/download/#section=windows  作者选择下载并安装Community版本 ——目前是PyCharm 2018.2.2 Community Edition。

    2)PyCharm 基本配置:

    a. 建立一个新项目:first。 

    b.设置默认PyCharm解析器

    选择File | Settings | Project: first | Project Interpreter,设置 Project Interpreter为你使用的python版本

    例如 C:xxxxAppDataLocalProgramsPythonPython35-32python.exe

    c. 添加第三方库 

     停留在 Project Interpreter 界面,点击+,查找并安装 pyqt5,pyqt5-sip ,pyqt5-tools 。安装成功后返回,界面应该如下。

    d.配置PyQt

    PyCharm中选择File | Settings | Tools | External Tools,点击+ 新建工具, 建立QTdesigner 和 PyUIC工具

    QTdesigner:

    配置两个关键参数:

    Program:自己的designer.exe路径 例如 C:xxxxAppDataLocalProgramsPythonPython35-32Libsite-packagespyqt5-toolsdesigner.exe  

    Working directory:$ProjectFileDir$

    PyUIC:

    配置三个关键参数:

    Program:自己的python.exe路径 例如 C:xxxxAppDataLocalProgramsPythonPython35-32python.exe

    Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py

    Working directory:$ProjectFileDir$

    工具建立成功后返回ExternalTools界面,如下:

    返回主界面,Tools->ExternalTools 中新增了QTdesigner 和 PyUIC两个工具

    4、PyCharm中通过PyQt5设计GUI界面

    1)利用代码创建GUI界面

    新建firstGUI.py,输入如下代码

    # -*- coding: utf-8 -*-
    """第一个程序"""

    from PyQt5 import QtWidgets # 导入PyQt5部件

    import sys

    app = QtWidgets.QApplication(sys.argv) # 建立application对象

    first_window = QtWidgets.QWidget() # 建立窗体对象

    first_window.resize(400, 300) # 设置窗体大小

    first_window.setWindowTitle("我的第一个pyqt程序") # 设置窗体标题

    first_window.show() # 显示窗体

    sys.exit(app.exec()) # 运行程序
    ###############################################################

    选择Run->Run firstGUI,结果显示如下界面就成功了。

    2)利用QT Designer代码生成一个GUI界面 ,并用PyUIC转换为.py文件。

    选择Tools->ExternalTools->QTdesigner,进入QT Designer界面,第一次会弹出一个GUI创建界面,点击creat 自动生成一个带下方按钮的GUI界面,如下图。

    另存该界面为Utitled.ui文件。

    返回PyCharm 项目界面,项目列表下多出了这个.ui文件

    右键单击Utitled.ui,弹出列表中选择ExternalTools->PyUIC 就会生成Utitled.ui对应的Utitled.py文件了。内容如下

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

    # Form implementation generated from reading ui file 'untitled.ui'
    #
    # Created by: PyQt5 UI code generator 5.11.2
    #
    # WARNING! All changes made in this file will be lost!

    from PyQt5 import QtCore, QtGui, QtWidgets

    class Ui_Dialog(object):
    def setupUi(self, Dialog):
    Dialog.setObjectName("Dialog")
    Dialog.resize(400, 300)
    self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
    self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))
    self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
    self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
    self.buttonBox.setObjectName("buttonBox")

    self.retranslateUi(Dialog)
    self.buttonBox.accepted.connect(Dialog.accept)
    self.buttonBox.rejected.connect(Dialog.reject)
    QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
    _translate = QtCore.QCoreApplication.translate
    Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
    #############################################################################
    That's All .Thankyou~

  • 相关阅读:
    Eclipse复制或修改项目后,把项目部署后发现还是原来的项目名称
    eclipse设置新建jsp文件默认字符编码为utf-8
    mysql数据库无法插入中文字符
    Dos中查看mysql数据时 中文乱码
    spring 解决中文乱码问题
    mysql再次安装问题
    The import javax.servlet cannot be resolved
    eclipse快捷键补全
    eclipse自动补全
    hibernate运行常见错误
  • 原文地址:https://www.cnblogs.com/daofaziran/p/11035395.html
Copyright © 2020-2023  润新知