PyQt5的基本配置与测试

12 篇文章 1 订阅

一、安装

PyCharm
Python 3.9.6路径:D:\software\python\python.exe

项目路径:D:\pyQt5
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5-tools

二、配置

2.1 配置 QtDisigner

QtDisigner用于搭建界面。
在PyCharm中依次单击 File – Settings – Tools – External Tools,点击 + Create Tool,配置如下:
Name:QtDisigner
Program:D:\pyQt5\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Working directory:$FileDir$
在这里插入图片描述

2.2 配置PyUIC

PyUIC用于将Qt Designer生成的.ui文件换成.py文件。同上,配置如下:
Name: PyUIC
Program:D:\software\python\python.exe #当前python的路径
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory:$FileDir$
在这里插入图片描述

2.3 配置PyRCC

PyRCC用于将编写的.qrc资源文件换成.py文件。同上,配置如下:
Name:PyRCC
Program:D:\pyQt5\venv\Scripts\pyrcc5.exe
Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory:$FileDir$
在这里插入图片描述

三、测试程序

3.1 新建UI

(1)双击 D:\pyQt5\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe,选择Widget,创建。保存到 D:\pyQt5\HanziPinyin.ui
在这里插入图片描述
(2)测试程序主要实现将汉字转为拼音,控件包括2个QLabel、1个QLineEdit(lineEditHanzi,输入汉字)、1个QTextEdit(textEditPinyin,显示转换结果)和2个QPushButton(pushButtonClear,清除输入和输出;pushButtonConvert,转换),UI如下
在这里插入图片描述

3.2 加载UI的两种方式

加载UI有两种方式:uic.loadUi()和pyuic5,详见参考[2]。
分享给有需要的人,代码质量勿喷

3.3 uic.loadUi()方式直接加载.ui文件

新建 test1.py

import sys
from PyQt5 import uic
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
from xpinyin import Pinyin


# 函数:汉字转换为拼音
def ConvertToPinyin(self):
    hanzi = win.lineEditHanzi.text()
    p = Pinyin() # 实例拼音转换对象
    pinyin1 = p.get_pinyin(hanzi, tone_marks='marks')# 进行拼音转换
    pinyin2 = p.get_pinyin(hanzi, tone_marks='numbers')
    pinyin = pinyin1 +'\n'+ pinyin2
    win.textEditPinyin.setText(pinyin)

# 函数:清除
def ClearHanzi(self):
    win.lineEditHanzi.clear()
    win.textEditPinyin.clear()


if __name__ =='__main__':
    QApplication.setStyle("fusion") # UI风格
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) # 适用高分屏
    app = QApplication(sys.argv)

    # uic.loadUi()
    win = uic.loadUi('HanziPinyin.ui')

    # 信号与槽函数
    win.pushButtonConvert.clicked.connect(ConvertToPinyin)
    win.pushButtonClear.clicked.connect(ClearHanzi)

    # 显示与退出
    win.show()
    app.exec()

3.4 pyuic5方式需要将.ui文件转为.py文件

(1)在Terminal中输入:pyuic5 HanziPinyin.ui -o HanziPinyin.py
HanziPinyin.ui文件转为对应的HanziPinyin.py文件。HanziPinyin.py包含了HanziPinyin.ui的基本信息。
(2)新建 test2.py
相比于参考[1],将信号槽函数直接写在 test2.py,这样不需要修改 由.ui转换得到的.py文件

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication,QWidget
from xpinyin import Pinyin
import HanziPinyin


class LaunchDialog(QWidget):
    # 槽函数:汉字转换为拼音
    def ConvertToPinyin(self):
        hanzi = self.ui.lineEditHanzi.text()
        p = Pinyin()  # 实例拼音转换对象
        pinyin1 = p.get_pinyin(hanzi, tone_marks='marks')  # 进行拼音转换
        pinyin2 = p.get_pinyin(hanzi, tone_marks='numbers')
        pinyin = pinyin1 + '\n' + pinyin2
        self.ui.textEditPinyin.setText(pinyin)

    # 槽函数:清除
    def ClearHanzi(self):
        self.ui.lineEditHanzi.clear()
        self.ui.textEditPinyin.clear()

    def __init__(self, parent =None):
        super(QWidget,self).__init__(parent)
        self.ui = HanziPinyin.Ui_Form() # import HanziPinyin
        self.ui.setupUi(self)

        #信号 槽函数
        self.ui.pushButtonConvert.clicked.connect(self.ConvertToPinyin)
        self.ui.pushButtonClear.clicked.connect(self.ClearHanzi)


if __name__ =='__main__':
    QApplication.setStyle("fusion")  # UI风格
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)  # 适用高分屏
    app = QApplication(sys.argv)

    # 启动
    dlg = LaunchDialog()

    # 显示与退出
    dlg.show()
    sys.exit(app.exec_())

四、结果

在这里插入图片描述

参考

[1] 干货 | 一文详解Python图形界面框架:PyQt5
[2] pyqt 加载ui的两种方法pyuic5与uic.loadUi(动态加载ui)的优缺点

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

累了就要打游戏

把我养胖,搞代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值