Tabla de contenido
3. Activar código lógico de enlace de eventos
0x00 Prefacio:
1. Eventos de señal (señal)
(eventos de activación como cambios de estado de clic, cierre, etc.)
2. Después de que la ranura
capture la señal ---> ejecute el código lógico correspondiente
3. Enlace de ranura de señal
para realización: evento de activación ---> ejecutar la lógica correspondienteLas señales y las ranuras deben estar unidas para funcionar.
Método:
object.signal.connect (función de ranura)
1. Diseño de código básico
Tome el código del cuadro de diálogo QDialog anterior como ejemplo
Ya hay un evento de clic a continuación.
(También necesitamos agregar código lógico y luego vincular el evento de clic al código lógico correspondiente)
import sys
from PyQt5.QtWidgets import QApplication, QPushButton, QDialog
# 对话框(多运用于弹窗)
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
ok_btn = QPushButton("确定",self)
ok_btn.setGeometry(50,100,100,30)
no_btn = QPushButton("取消", self)
no_btn.setGeometry(300, 100, 100, 30)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 根据命名自己改(我每个都以MainWindow就不改了)
w = MainWindow()
w.setWindowTitle("对话框")
w.show()
sys.exit(app.exec_())
2. Agregar código lógico
Más el código lógico que debe corresponder al evento desencadenante.
(Después de escribir el código lógico, solo necesita vincularlos)
import sys
from PyQt5.QtWidgets import QApplication, QPushButton, QDialog
# 对话框(多运用于弹窗)
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
ok_btn = QPushButton("确定",self)
ok_btn.setGeometry(50,100,100,30)
no_btn = QPushButton("取消", self)
no_btn.setGeometry(300, 100, 100, 30)
#————————————————————————————————————————
# 逻辑代码如下
# 点击事件对应的逻辑函数代码
def ok_clicked(self,arg):
print("点击了ok")
def no_clicked(self,arg):
print("点击了取消")
# ————————————————————————————————————————
if __name__ == '__main__':
app = QApplication(sys.argv)
# 根据命名自己改(我每个都以MainWindow就不改了)
w = MainWindow()
w.setWindowTitle("对话框")
w.show()
sys.exit(app.exec_())
3. Activar código lógico de enlace de eventos
método:
object.signal.connect(función de ranura)
import sys
from PyQt5.QtWidgets import QApplication, QPushButton, QDialog
# 对话框(多运用于弹窗)
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
ok_btn = QPushButton("确定",self)
ok_btn.setGeometry(50,100,100,30)
no_btn = QPushButton("取消", self)
no_btn.setGeometry(300, 100, 100, 30)
# ————————————————————————————————————————————————————————————————————
# 绑定如下
# 绑定按钮的点击事件
ok_btn.clicked.connect(self.ok_clicked)
no_btn.clicked.connect(self.no_clicked)
# —————————————————————————————————————————————————————————————————————
# 点击事件对应的逻辑函数代码
def ok_clicked(self,arg):
print("点击了ok")
def no_clicked(self,arg):
print("点击了取消")
if __name__ == '__main__':
app = QApplication(sys.argv)
# 根据命名自己改(我每个都以MainWindow就不改了)
w = MainWindow()
w.setWindowTitle("对话框")
w.show()
sys.exit(app.exec_())
Puedes ver que se activa el código lógico correspondiente.