QWidget事件消息

article/2025/10/13 2:15:13

1、用户操作界面时会产生特定的事件消息。

API:显示和关闭事件、移动事件、调整大小、鼠标事件、键盘事件、焦点事件、拖拽事件、绘制事件、改变事件、右键菜单、输入法。

应用场景:当一个控件被触发了一个特定的行为时,就会调用特定的方法,来将事件传递给开发人员,方便处理,重写这些事件方法,就可以监听相关的信息。

# 用户对界面产生的特定行为会被包装成一个事件消息,该事件消息会被传递给特定对象的特定方法
# 监听特定方法就需要自定义类,继承某一个特定的类别

显示和关闭事件:showEvent(QShowEvent)控件显示调用。

closeEvent(QCloseEvent)控件关闭时调用。

移动事件:moveEvent(QMoveEvent)控件移动时调用。

调整大小:resizeEvent(QResizeEvent)控件调整大小时使用。

鼠标事件:鼠标进入时和鼠标离开时触发。(鼠标的所有操作必须都在控件范围之内,否则无法触发消息)

 键盘事件:当用户点击某一个键就会自动调用该事件方法。

 焦点事件:某个控件获取相应的焦点,获取焦点当用户通过键盘输入的内容就会跑到对应的获取焦点的控件里。(关注的那个事件)

 拖拽事件:上传文件 等

绘制事件:能看到控件主要是因为绘制事件操作。可以自定义控件。 

改变事件:窗体改变、字体、语言(中英文调换)改变等。

 右键菜单:右键弹出菜单,可以设置菜单中的内容。

 输入法:关于输入法的操作。

from PyQt5.Qt import *
import sys# 用户对界面产生的特定行为会被包装成一个事件消息,该事件消息会被传递给特定对象的特定方法
# 监听特定方法就需要自定义类,继承某一个特定的类别class Window(QWidget):def __init__(self):super().__init__()self.setWindowTitle("消息时间机制")self.resize(500, 500)self.setup_ui()# 在这里设置子控件def setup_ui(self):pass# 显示关闭事件# 在每个事件方法中都会把相关的事件传递给我们def showEvent(self, QshowEvent):print("窗口被展示出来")def closeEvent(self, QCloseEvent):print("窗口被关闭了")# 未移动之前会打印两遍,是因为展示时,系统需要将窗口摆放在正确位置,所以会移动def moveEvent(self, QMoveEvent):print("窗口被移动了")# 一开始展示窗口,肯定会有个尺寸调整大小,会触发该事件def resizeEvent(self, QResize):print("窗口改变了尺寸大小")def enterEvent(self, QEvent):print("鼠标进来了")self.setStyleSheet("background-color:cyan")def leaveEvent(self, QEvent):print("鼠标离开了")self.setStyleSheet("background-color:green")def mousePressEvent(self, QMouseEvent):print("鼠标被按下")def mouseReleaseEvent(self, QMouseEvent):print("鼠标被释放")def mouseDoubleClickEvent(self, QMouseEvent):print("鼠标双击")def mouseMoveEvent(self, QMouseEvent):print("鼠标移动了")def keyPressEvent(self, QKeyEvent):print("键盘上某一个键被按下了")def keyReleaseEvent(self, QKeyEvent):print("键盘上某一个键被释放了")if __name__ == "__main__":app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

http://chatgpt.dhexx.cn/article/Pe37xV2r.shtml

相关文章

QWidget的isHidden和isVisible

文章目录 问题的出现QWidget的show()函数QWidget的isVisible和isHidden源码追溯 QWidget的isHidden和isVisible 问题的出现 最近在写代码的时候,出现了一个问题,我新建了两个类,分别是Chapter2和ConsecutiveCurtain // ConsecutiveCurta…

QWidget鼠标操作

1、设置鼠标形状:鼠标放置在不同控件上(有不同功能时)鼠标的形状是不一样的。 鼠标跟踪:鼠标在某一个控件上移动,则会向对应的控件对象发送一个消息,去调用具体的某一个方法,可以在方法里面监听…

QWidget旋转方法

参考链接:https://stackoverflow.com/questions/43388464/rotate-whole-qwidget-by-angle 说明: 本文实现方法本质是使用QGraphics三件套,即View、Scene、Item,将QWidget控件作为Item显示,从而实现角度控制的目的&…

QWidget设置背景图及圆角

在Qt开发过程中,QWidget是经常作为主窗体的父窗口,有时我们需要对主窗口设置背景,设置圆角以达到美观的效果,通常的有以下三种方法:qss, QPalette设置以及paintEvent绘制。下面介绍这三种方法。 背景设置介绍 方法一&a…

QWidget之adjustSize

from PyQt5.Qt import * import sys# 创建一个应用程序对象 app QApplication(sys.argv)window QWidget()label QLabel(window) label.setText(学无止境) label.move(100, 100) label.setStyleSheet(background-color:gray)def changeCao():tmp label.text()学无止境label.…

初识QWidget

初识QWidget 在Qt中QWidget是一个非常关键和重要的类,推荐初学Qt的同学们第一个学习此类 在Qt的帮助手册中我们搜索QWidget,可以看到下图的描述 通过帮助手册我们了解到如果想使用QWidget这个类,需要包含QWidget这个头文件,Qt特…

QWidget继承

查看QWidget的继承于哪个类 方法一 随便写一个类继承自己QWidget 按住Ctrl鼠标单击QWidget即可 方法二 print(QWidget.__base__)方法三 print(QWidget.mro()) 链条式的继承展示 enjoy

QWidget(长文)

一、描述 1、QWidget 是用户界面的原子:它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自己的表示。每个小部件都是矩形的,它们按Z顺序排序。小部件由其父部件和它前面的小部件剪裁。 2、未嵌入父窗口小部件的 QWidget 称为窗口。通…

QWidget的使用

一、QWidget介绍 QWidget是用户操作的原子接口,它从窗口系统中接收鼠标,键盘以及其他事件,并绘制图形界面。QT提供的默认窗口基类只有QMainWindow、QWidget、和QDialog这三种,QMainWindow是带有菜单栏和工具栏的主窗口类&#xf…

QWidget

QWidget QWidget是容器组件,继承自QObject类和QPaintDevice类。能够绘制自己和处理用户输入,是QT中所有窗口组件类的父类,是所有窗口组件的抽象,每个窗口组件都是一个QWidget,QWidget类对象常用作父组件或顶级组件使用…

QT学习总结之QWidget详解

1、说明 QWidget类是所有用户界面对象的基类。 QWidget是用户界面的原子类。它接收鼠标、键盘和来自系统的其他事件,并在屏幕上将它们绘制出来。每个Widget都是矩形的,并按照Z-order(Z轴)进行排序。一个Widget夹在它的Parent和它…

VS2019安装与使用教程

VS2019安装与使用教程 可能有很多小伙伴们,知道VS2019这个软件,但是不知道怎么安装与使用,下面我将具体介绍VS2019的安装方法与创建我们自己的C项目以及如何运行自己编写的代码! Visual Studio 2019(VS2019)简介 Microsoft Visual…

vs2017初学c++环境配置及使用教程

作为一个计算机小白, 初学c的时候使用了vs2017, 配置环境如下 如图所示, 可以实现c的基本操作. 在vs2017的版本中, 取消了win32这个选项, 所以直接选择新建空项目. 在解决方案资源管理器中, 于源文件处新建.cpp文件, 即可执行操作. 如果出现闪现的情况, 则右键点击解决方案资…

【转载】VS2019使用技巧

大家好,今天分享几个我知道的实用 VS 技巧,而这些技巧我发现很多人都不知道。因为我经常在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS “骚”操作,他们会好奇地问&#xf…

VS2019安装教程

VS2019安装教程 (如果下面的博客没有能解决你的问题或者你还有其他关于计算机方面的问题需要咨询可以加博主QQ:1732501467) 在安装完JDK后,现在还不能使用java来进行编程,此时你还需要一个java开发工具,其…

VS2017专业版使用最新版Qt5.9.2教程(最新教材)

VS2017专业版使用最新版Qt5.9.2教程(最新教材) 目录 VS2017专业版使用最新版Qt5.9.2教程(最新教材) 运行环境: 1.安装Qt5.9.2 2.安装Qt5.9与VS2017之间的插件: 3.配置Qt VS Tool的环境. 4.设置创建的Qt的项目的…

Visual Studio(VS)2013使用教程

目录 1、初始2、新建项目3、点下一步后,此步后点完成4、解决方案资源管理器5、新建文件6、代码完成后不要点调试7、头文件显示:无法打开源文件路径未被包含若这一步没问题,则可能新建项时路径出错①添加包含目录级如上述②移除文件&#xff0…

Visual Studio 2017安装和使用教程(详细

Visual Studio 2017安装和使用教程&#xff08;详细&#xff09; 2018-10-09 01:02 来源:c语言程序设计官方 </div>原标题&#xff1a;Visual Studio 2017安装和使用教程&#xff08;详细&#xff09; 前言 说在前面&#xff0c;各位读者记得将 C语言程序设计 设置星标…

VS2019初步使用

前言 前段时间把电脑重置了下&#xff0c;导致很多软件都被删除了&#xff0c;所以重新安装了&#xff0c;顺便把一些“陈年落后”的软件更新到了最新版。新版的软件和之前相比的确区别很大&#xff0c;更人性化了、功能也增加了不少&#xff0c;体会最深的就是Adobe Photosho…

VS2017下载地址和安装教程(图解)

VS2017下载地址和安装教程&#xff08;图解&#xff09; 继 VS2015 版本后&#xff0c;微软又推出了功能更加强大的VS 2017。 Visual Studio 2017 不仅支持 C#、C、Python、Visual Basic、Node.js、HTML、JavaScript 等各大编程语言&#xff0c;还能开发 iOS、Android 的移动…