PyQt5编程开发

一、pyqt5基本格式

import sys
from PyQt5.QtWidgets import QMainWindow,QApplication  #从QtWidgets导入类QMainWindow,QApplication
from PyQt5.QtGui import QIcon
from ui import Ui_MainWindow # ui为QtDesigner布局生成的py文件,实际命名可能是其它,Ui_MainWindow为生成的前端python文件ui.py中定义的类

class MyApp(QMainWindow,Ui_MainWindow):  #MyApp为自定义类
    def __init__(self):
        super(MyApp,self).__init__() #super()函数调用父类QMainWindow,Ui_MainWindow
        self.setupUi(self) #构造UI

## ==============自定义功能函数============================ 
## ==============事件处理函数=========================== 
 
## ==========由 connectSlotsByName()自动关联的槽函数======== 
 
## =============自定义槽函数============================== 
## ============窗体测试程序 ===============================

if __name__ == "__main__":
    app = QApplication(sys.argv) #创建pyqt5的GUI程序
    window = MyApp()  #实例化一个窗口对象, MyApp为上面定义的类
    window.show() #展示窗口内容
    sys.exit(app.exec_()) #进入程序主循环,窗口不会关闭,并且exit函数确保主循环安全退出

二、pyqt5编程demo

2.1、QtDesigner设计UI,然后使用PyUIC把Qt Designer生成的.ui文件换成.py文件

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(360, 210, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(360, 330, 75, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(540, 140, 91, 20))
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setGeometry(QtCore.QRect(470, 170, 231, 221))
        self.textBrowser.setObjectName("textBrowser")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(100, 170, 221, 221))
        self.textEdit.setObjectName("textEdit")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(360, 270, 75, 23))
        self.pushButton_3.setObjectName("pushButton_3")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(250, 490, 281, 51))
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(190, 140, 61, 16))
        self.label_3.setObjectName("label_3")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.pushButton_2.clicked.connect(self.textEdit.clear)
        self.pushButton_2.clicked.connect(self.textBrowser.clear)
        self.pushButton_3.clicked.connect(self.textBrowser.selectAll)
        self.pushButton_3.clicked.connect(self.textBrowser.copy)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "转换"))
        self.pushButton_2.setText(_translate("MainWindow", "重置"))
        self.label_2.setText(_translate("MainWindow", "目标数据"))
        self.pushButton_3.setText(_translate("MainWindow", "复制"))
        self.label_4.setText(_translate("MainWindow", "@2022Test"))
        self.label_3.setText(_translate("MainWindow", "源数据"))

2.2、新建python文件,处理后台业务逻辑

#coding=utf-8

from PyQt5.QtWidgets import QApplication, QMainWindow  #用于下面class translation(QMainWindow, Ui_MainWindow)
from PyQt5.QtGui import QIcon
import sys
from dataConversion import Ui_MainWindow #用于下面class translation(QMainWindow, Ui_MainWindow)
import os

class translation(QMainWindow,Ui_MainWindow):
    def __init__(self):
        super(translation,self).__init__()
        self.setupUi(self)
        curdirpath = os.path.dirname(__file__)
        self.setWindowTitle('SQL查询条件格式转换器') #设置窗口标题
        self.setWindowIcon(QIcon(curdirpath + '/m7.ico'))  #设置窗口图标

        self.pushButton.clicked.connect(self.display) #信号的发送者self.pushButton发送信号clicked给信号的接收者self,触发信号的接收者执行槽函数display

    def display(self):
#       content = self.lineEdit.text() #单行文本获取输入内容
        content = self.textEdit.toPlainText() #多行文本获取输入内容
        content = content.replace('\n', '\',\'')
        content = '\'' + content + '\''
        self.textBrowser.setText(content)

if __name__ == '__main__':
    app = QApplication(sys.argv) #创建pyqt5的GUI程序
    myWindow=translation()
    myWindow.show() #展示窗体内容
    sys.exit(app.exec_()) #进入程序主循环,窗口不会关闭,并且exit函数确保主循环安全退出

2.3、代码调试

pyqt5的代码也可以在pycharm界面运行调试,可以显示图形用户界面并在界面上进行输入,若有错误,日志可以在console界面展示

2.4、使用Pyinstaller工具打包源文件为可执行文件

在业务场景中, 经常需要Python开发一些脚本/小程序/GUI界面,交付给一些小白或未安装Python 的小伙伴们使用。

Pyinstaller是一个免费打包工具,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包成可执行的.exe文件,

它可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。

pyinstaller -F -w D:\Document\Workspace\SQLFormat\call_dataConversion.py -i D:\Document\icon\m7.ico -n SQL查询条件格式转换器
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值