首页 > 技术文章 > 信号-事件汇总

liming19680104 2019-02-09 07:30 原文

 事件:

 

 显示和关闭事件:

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)     自定义上下文菜单请求信号

 

推荐阅读