基于Anacoda的pyqt5

Qt Designer生成的ui文件转py文件


  1. win+r打开cmd,进入ui文件所在的目录下。
  2. 输入python -m PyQt5.uic.pyuic ui文件名.ui -o 想要生成的py文件名.py
  3. 运行后将在ui文件目录下生成py文件。



通过类的继承来调用生成的py文件


首先是生成的py文件,我将其命名为了testtest.py

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

# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.9.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(1262, 791)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(910, 680, 241, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(540, 670, 112, 34))
        self.pushButton.setMouseTracking(False)
        self.pushButton.setObjectName("pushButton")
        self.asdq1111 = QtWidgets.QOpenGLWidget(Dialog)
        self.asdq1111.setGeometry(QtCore.QRect(440, 150, 300, 200))
        self.asdq1111.setObjectName("asdq1111")

        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"))
        self.pushButton.setText(_translate("Dialog", "PushButton"))



然而通过转换 ui 文件为 py 文件,得到的只是界面的 ui 的类, 并不包括启动界面的函数,我们称之为界面文件。因此需要新建一个 py 文件使窗口显示出来,这个新建的文件我们称为逻辑文件。

下面是逻辑文件的代码:

import sys
from PyQt5.QtWidgets import QApplication, QDialog
#"testtest"生成的py文件名,"Ui_Dialog"为引用的类名
from testtest import Ui_Dialog


class MyWindow(QDialog, Ui_Dialog):
    def __init__(self, parent=None):
        super(MyWindow,self).__init__()
        self.setupUi(self)


if __name__ == '__main__':
    # 每一pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,从命令行输入参数。
    app = QApplication(sys.argv)
    myWin = MyWindow()
    # 显示在屏幕上
    myWin.show()
    # 系统exit()方法确保应用程序干净的退出
    # 的exec_()方法有下划线。因为执行是一个Python关键词。因此,exec_()代替
    sys.exit(app.exec_())

我们通过对生成的py文件进行类的继承,来展示主窗体。




lineEdit操作

使文本框显示“fuck u”文字:

self.lineEdit.setText("fuck u")

获取文本框中输入的文字:

self.lineEdit.text()
信号相关操作

在文本框中的字符发生改变时触发信号:

self.lineEdit.textChanged.connect()

鼠标光标离开当前lineEdit时触发信号:

self.lineEdit.editingFinished.connect()

在文本框中的字符中改变选中的字符时触发信号:

self.lineEdit.selectionChanged.connect()



QPushButton操作

设置按钮不可用(True为按钮可用):

self.pushButton.setEnabled(False)

设置按钮上的文本:

self.pushButton.setText()

获取按钮上的文本:

self.pushButton.text()
信号操作

点击触发信号,其中xxx为一个方法(def):

self.pushButton.clicked.connect(self.xxx)



py文件封装为exe文件

  1. 打包的时候,我们需要用到pyinstaller。安装:pip install pyinstaller
  2. 在cmd中输入pyinstaller.exe -F -w (py文件的位置)
  3. 打包好的文件在用户文件夹的dist文件夹下:
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值