当前位置:   article > 正文

Python之PyQt全面的基础知识_pyjptt

pyjptt

PyQt5是Python构建跨平台应用程序的工具包,PyQt5 Reference Guide是对应的开发文档。

Qt是C++跨平台的类库,实现访问桌面应用程序和移动系统的高级别访问。包括本地和远程定位服务,NFC和蓝牙连接,基于Google Chromium web浏览器,以及传统UI的开发。
PyQt5是Python绑定Qt v5的全方面集合,已经实现超过35个模块,并使Python能够在所有以C++作为开发语言的平台上被使用。
PyQt5也可以嵌入到基于C++开发的英语程序,允许用户配置或者增强这些应用程序的功能。
在这里插入图片描述

检查PyQt5是否被安装

PS C:\Users\Michael> python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt5                                                                                                       >>> help(PyQt5)                                                                                                         Help on package PyQt5:  
NAME
    PyQt5

PACKAGE CONTENTS
    QAxContainer
    Qt
    QtBluetooth
    QtCore
    QtDBus
    QtDesigner
    QtGui
    uic (package)

FILE
    (built-in)    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

安装PyQt5

PS C:\> pip install PyQt5
Collecting PyQt5
  Using cached PyQt5-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl (56.9 MB)
Requirement already satisfied: PyQt5-sip<13,>=12.8 in python\lib\site-packages (from PyQt5) (12.8.1)
Installing collected packages: PyQt5
Successfully installed PyQt5-5.15.2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

卸载PyQt5

PS C:\> pip uninstall PyQt5

Proceed (y/n)? y
  Successfully uninstalled PyQt5-5.15.2
  • 1
  • 2
  • 3
  • 4

pip工具的使用手册

The Python Package Index (PyPI) is Python以社区形式开发的应用软件库,提供给第三方免费使用。其中pip是PyPA推荐的用于安装Python软件包的工具。

安装 pip

pip install pip
  • 1

Qt设计器designer

安装PyQt5-tools程序包

PS C:> pip install PyQt5-tools
  • 1

designer设计器在Python\Lib\site-packages\qt5_applications\Qt\bin 目录下
在这里插入图片描述

PyCharm集成designer

PyCharm集成QTDesigner的Tool Setting设置如下:

Program----D:\Python\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Arguments----$FileName$ -o $FileNameWithoutExtension$.py 或者 缺省
Working dirctory----$ProjectFileDir$ 或者 D:\Python\Lib\site-packages\qt5_applications\Qt\bin
  • 1
  • 2
  • 3

在这里插入图片描述

PyCharm集成PyUIC

PyCharm集成QTDesigner的Tool Setting设置如下:

Program----D:\Python\Scripts\pyuic5.exe
Arguments----$FileName$ -o $FileNameWithoutExtension$.py 或者 缺省
Working dirctory----$ProjectFileDir$ 或者 D:\codetool\Python\Scripts
  • 1
  • 2
  • 3

在这里插入图片描述

PyCharm使用designer 和 PyUIC

在这里插入图片描述

Eclipse集成designer

Run——External Tools——External Tools Configurations——Program——New
在这里插入图片描述

Eclipse集成PyUIC

Run——External Tools——External Tools Configurations——Program——New
在这里插入图片描述

Eclipse使用designer 和 PyUIC

在这里插入图片描述

Designer设计界面

通过designer设计界面,保存成ui文件,然后通过pyuic转化成py文件。用户名和密码框选择Line Edit 当行文本框,而不是Text Edit多行文本框。
在这里插入图片描述

PyQt的密码框

self.lineEdit.setEchoMode(QtWidgets.QLineEdit.Password)
  • 1

在这里插入图片描述

把UI转成成py文件

 pyuic5 -o C:\temp\login.py C:\temp\login.ui
  • 1

Eclipse 编辑py文件

在这里插入图片描述
附上一段代码,以供参考。

from PyQt5 import QtCore, QtGui, QtWidgets

import sys

class loginForm(object):
    
    def setupUi(self, loginForm):
        loginForm.setObjectName("loginForm")
        loginForm.setWindowModality(QtCore.Qt.ApplicationModal)
        loginForm.resize(595, 421)
        font = QtGui.QFont()
        font.setFamily("微软雅黑 Light")
        font.setPointSize(11)
        loginForm.setFont(font)
        loginForm.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
        loginForm.setLocale(QtCore.QLocale(QtCore.QLocale.Chinese, QtCore.QLocale.HongKong))
        self.label = QtWidgets.QLabel(loginForm)
        self.label.setGeometry(QtCore.QRect(180, 100, 54, 21))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(loginForm)
        self.label_2.setGeometry(QtCore.QRect(180, 170, 54, 21))
        self.label_2.setObjectName("label_2")
        self.pushButton = QtWidgets.QPushButton(loginForm)
        self.pushButton.setGeometry(QtCore.QRect(240, 250, 91, 31))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(loginForm)
        self.pushButton_2.setGeometry(QtCore.QRect(350, 250, 91, 31))
        self.pushButton_2.setObjectName("pushButton_2")
        self.lineEdit = QtWidgets.QLineEdit(loginForm)
        self.lineEdit.setGeometry(QtCore.QRect(240, 160, 201, 41))
        self.lineEdit.setEchoMode(QtWidgets.QLineEdit.Password)
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(loginForm)
        self.lineEdit_2.setGeometry(QtCore.QRect(240, 90, 201, 41))
        self.lineEdit_2.setObjectName("lineEdit_2")

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

    def retranslateUi(self, loginForm):
        _translate = QtCore.QCoreApplication.translate
        loginForm.setWindowTitle(_translate("loginForm", "登录"))
        self.label.setText(_translate("loginForm", "用户名"))
        self.label_2.setText(_translate("loginForm", "密  码"))
        self.pushButton.setText(_translate("loginForm", "登录"))
        self.pushButton_2.setText(_translate("loginForm", "清除"))

    
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = loginForm()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/555293
推荐阅读
相关标签
  

闽ICP备14008679号