Tabla de contenido
contenido del próximo capítulo
Establecer el método de inicio directo del software
1. Programas para diseñar interfaces.
2. Convierta el archivo ui diseñado por Qt Designer en un archivo py
3. Puede empaquetar el archivo py en un archivo exe ejecutable.
Convierta el archivo ui de la interfaz ui diseñada en un archivo py
código en el archivo principal
contenido del próximo capítulo
Configuración de PyQt5
Hay tutoriales sobre cómo configurar otros bloggers.
Se recomienda instalar los siguientes paquetes (es mejor ingresar el siguiente comando en el entorno de su computadora original, es decir, el cmd de su computadora, no lo cree en el entorno virtual creado por pycharm, para evitar que el software sea no se puede abrir después de eliminar el proyecto)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5-tools
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple paramiko
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
Por supuesto, hay que instalarlo nuevamente en pycharm.
después de eso en la configuración
Seleccione Herramientas -> Herramientas externas -> Signo más
Establecer el método de inicio directo del software
Luego crea el siguiente contenido a su vez.
1. Programas para diseñar interfaces.
名称:Qt Designer
工具设置
程序:C:\Users\你的用户名\AppData\Local\Programs\Python\你的python版本\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
工作目录:$FileDir$
2. Convierta el archivo ui diseñado por Qt Designer en un archivo py
名称:PyUIC
工具设置:
程序:C:\Users\你的用户名\AppData\Local\Programs\Python\你的python版本\Scripts\pyuic5.exe
实参:$FileName$ -o $FileNameWithoutExtension$.py
工具目录:$FileDir$
3. Puede empaquetar el archivo py en un archivo exe ejecutable.
名称:PyInstall
工具设置:
程序:C:\Users\你的用户名\AppData\Local\Programs\Python\你的python版本\Scripts\pyinstaller.exe
实参: -F -w $FileNameWithoutExtension$.py
工作目录:$FileDir$
4. Coloque la imagen ico en el archivo qrc y luego convierta el archivo qrc en un archivo py para el ícono del gadget.
名称:pyrcc
工具设置:
程序:C:\Users\你的名字\AppData\Local\Programs\Python\你的Python3版本\Scripts\pyrcc5.exe
实参:$FileName$ -o $FileNameWithoutExtension$.py
工作目录:$FileDir$
Después de escribir, haga clic en Aplicar
Método de atajo
Luego puedes hacer clic en el triángulo izquierdo.
Herramientas->Herramientas externas para uso rápido
interfaz de diseño
Luego hacemos clic en Qt Designer para comenzar a diseñar la interfaz.
Luego comience a crear una ventana.
Después de ingresar, crea una ventana según tus preferencias.
No se introducen métodos de uso avanzados.
He usado
etiqueta: el texto en el cuadro
edición de línea: enlace para obtener información
Botón pulsador: se utiliza para configurar el botón de activación, como comenzar a rastrear o cerrar la ventana.
Explorador de texto: se utiliza para generar los resultados del programa (opcional, para que el usuario los vea)
Después de hacer clic en el control, el cuadro de la derecha mostrará de qué control se trata.
Se recomienda cambiar el nombre de un lado del nombre; de lo contrario, será difícil recordarlo.
Una vez completado el diseño, puede hacer clic en Guardar, que se guarda en el directorio raíz de su proyecto de Python de forma predeterminada.
Convierta el archivo ui de la interfaz ui diseñada en un archivo py
Desde que configuramos el atajo
Podemos fácilmente hacer clic derecho en el archivo ui y ejecutar la herramienta PyUIC
Luego puede encontrar el archivo py con el mismo nombre en el directorio de archivos del proyecto.
O puedes ejecutar el comando
pyuic5 -o 原ui文件名称 输出的py文件名称
El archivo compilado se ve así
El código del archivo es
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'win.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(679, 485)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.Button_run = QtWidgets.QPushButton(self.centralwidget)
self.Button_run.setGeometry(QtCore.QRect(50, 240, 121, 41))
self.Button_run.setObjectName("Button_run")
self.Button_close = QtWidgets.QPushButton(self.centralwidget)
self.Button_close.setGeometry(QtCore.QRect(220, 240, 121, 41))
self.Button_close.setObjectName("Button_close")
self.label_link = QtWidgets.QLabel(self.centralwidget)
self.label_link.setGeometry(QtCore.QRect(60, 110, 71, 21))
self.label_link.setObjectName("label_link")
self.line_link = QtWidgets.QLineEdit(self.centralwidget)
self.line_link.setGeometry(QtCore.QRect(130, 110, 211, 21))
self.line_link.setObjectName("line_link")
self.text_result = QtWidgets.QTextEdit(self.centralwidget)
self.text_result.setGeometry(QtCore.QRect(370, 110, 291, 321))
self.text_result.setObjectName("text_result")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 679, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "爬虫"))
self.Button_run.setText(_translate("MainWindow", "开始爬取"))
self.Button_close.setText(_translate("MainWindow", "关闭"))
self.label_link.setText(_translate("MainWindow", "目录链接"))
código en el archivo principal
Cree un archivo llamado main.py (usado para almacenar nuestro programa principal)
import sys
# PyQt5中使用的基本控件都在PyQt5.QtWidgets模块中
from PyQt5.QtWidgets import QApplication, QMainWindow
# 导入designer工具生成的login模块
from win import Ui_MainWindow
import time
Y win es el archivo de ventana que acabo de compilar. El archivo Ui_mainWindow es el nombre de mi clase.
(No lo copie todo de una vez, simplemente siga la calabaza para sacar una cucharada)
class MyMainForm(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainForm, self).__init__(parent)
self.setupUi(self)
if __name__ == "__main__":
# 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
app = QApplication(sys.argv)
# 初始化
myWin = MyMainForm()
# 将窗口控件显示在屏幕上
myWin.show()
# 程序运行,sys.exit方法确保程序完整退出。
sys.exit(app.exec_())
Juntos, y luego ejecutar, puedes ver que aparece una ventana.
pero nuestro botón no hace nada
A continuación usaremos la función para vincular el evento de presionar el botón
solo en la funcion
def __init__(self, parent=None):
super(MyMainForm, self).__init__(parent)
self.setupUi(self)
Se puede cambiar a esto (lo que significa que presionar el botón Button_close activa la función de cierre, esta función no necesita estar definida por sí misma, presione el botón Button_run para ejecutar la función F_run, que debemos definir nosotros mismos)
def __init__(self, parent=None):
super(MyMainForm, self).__init__(parent)
self.setupUi(self)
self.Button_close.clicked.connect(self.close)
self.Button_run.clicked.connect(self.F_run)