事件:

信号-事件汇总_控件


 显示和关闭事件:

showEvent(QShowEvent)    控件显示时调用

closeEvent(QCloseEvent)     控件关闭时调用

from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton
import sys
from PyQt5.QtGui import QCursor
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QPixmap

class win(QWidget): #创建一个类,为了集成控件
def __init__(self):
super().__init__()
self.resize(600,600)
self.setWindowTitle('事件学习')
self.num=0
self.label=QLabel('标签',self)

def showEvent(self,QShowEvent): #控件显示时调用
#参数1 控件
print('窗口显示出来了')

def closeEvent(self,QCloseEvent): # 控件关闭时调用
# 参数1 控件
print('窗口关闭了')

if __name__=='__main__':
app=QApplication(sys.argv) #创建应用
w=win()
w.show()
sys.exit(app.exec_())



def closeEvent(self, QCloseEvent):  # 窗口关闭函数

  QCloseEvent.accept() #接受关闭

  QCloseEvent.ignore() #忽略关闭


移动事件:


def moveEvent(self,QMoveEvent):   #控件移动时调用
# 参数1 控件
print('窗口移动了')



调整大小事件:

def resizeEvent(self,QResizeEvent):
# 参数1 控件
print('大小发生改变了')



焦点事件:

focusInEvent(QFocusEvent)     获取焦点时调用

focusOutEvent(QFocusEvent)    失去焦点时调用


拖拽事件:

dragEnterEvent(QDragEnterEvent)        拖拽进入控件时调用

dragLeaveEvent(QDragLeaveEvent)     拖拽离开控件时调用

dragMoveEvent(QDragMoveEvent)      拖拽在控件内移动时调用

dropEvent(QDropEvent)      拖拽放下时调用


绘制事件:

paintEvent(QPaintEvent)      显示控件, 更新控件时调用


改变事件:

changeEvent(QEvent)     窗体改变, 字体改变时调用


右键菜单:

contextMenuEvent(QContextMenuEvent)      访问右键菜单时调用


输入法:

inputMethodEvent(QInputMethodEvent)      输入法调用



 事件转发机制:

 子类受到事件后,先找自己的事件处理函数,如果自己没有就去找父类

视频教程:​​https://v.qq.com/x/page/b0859g16bpc.html​


 textChanged 文本内容发生改变时发出信号 例如:self.user_line.textChanged.connect(self.check_input_func)

 clicked   鼠标单击时

self.button.released.connect(self.change_text)      鼠标键释放时

 self.checkbox1.stateChanged.connect(lambda: self.on_state_change_func(self.checkbox1))

#复选框状态发生改变的时候发出信号

#匿名函数做槽函数,匿名函数的表达式调用了自定义函数



window.windowTitleChanged.connect()        窗口标题变化时发出信号

会向槽函数传递一个字符串,就是新改变的窗口标题

 windowIconChanged(QIcon)     窗口图标改变信号

customContextMenuRequested(QPoint)     自定义上下文菜单请求信号