Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在幕后更新视图?_C++_Qt - Fatal编程技术网

C++ 如何在幕后更新视图?

C++ 如何在幕后更新视图?,c++,qt,C++,Qt,例如,当我在QLabel上使用setText()时,Qt会自动为我更新视图/gui,并显示新文本,但在幕后会发生什么?在使用诸如setText()之类的函数时,是否有自动调用的更新函数 谢谢 您应该查看本文档中的基本文档 内部系统稍微复杂一点,但一般来说,它遵循观察者模式。此机制允许检测用户操作或更改状态,并响应此操作 底层交互(如刷新屏幕)通过 在Qt中,事件是从抽象QEvent类派生的对象,表示应用程序内部发生的事件或应用程序需要了解的外部活动的结果。事件可以由QObject子类的任何实例接

例如,当我在QLabel上使用setText()时,Qt会自动为我更新视图/gui,并显示新文本,但在幕后会发生什么?在使用诸如setText()之类的函数时,是否有自动调用的更新函数


谢谢

您应该查看本文档中的基本文档

内部系统稍微复杂一点,但一般来说,它遵循观察者模式。此机制允许检测用户操作或更改状态,并响应此操作

底层交互(如刷新屏幕)通过

在Qt中,事件是从抽象QEvent类派生的对象,表示应用程序内部发生的事件或应用程序需要了解的外部活动的结果。事件可以由QObject子类的任何实例接收和处理,但它们与小部件尤其相关。本文档描述了在典型应用程序中如何传递和处理事件

因此,关于显示过程,有一个专门的事件。QWidget对象处理/订阅PaintEvent,请参阅

此事件处理程序可以在子类中重新实现,以接收事件中传递的绘制事件。绘制事件是重新绘制全部或部分小部件的请求

调用时,
QLineEdit::setText()
,小部件将在下次触发显示事件时根据操作系统配置、刷新率等重新绘制

对于高级交互,Qt使用基于机制的类似模式:

观察者模式在GUI应用程序中随处可见,通常会产生一些样板代码。创建Qt的目的是删除这个样板代码,并提供一个好的、干净的语法,而信号和插槽机制就是答案


您应该检查本文档中的基本文档

内部系统稍微复杂一点,但一般来说,它遵循观察者模式。此机制允许检测用户操作或更改状态,并响应此操作

底层交互(如刷新屏幕)通过

在Qt中,事件是从抽象QEvent类派生的对象,表示应用程序内部发生的事件或应用程序需要了解的外部活动的结果。事件可以由QObject子类的任何实例接收和处理,但它们与小部件尤其相关。本文档描述了在典型应用程序中如何传递和处理事件

因此,关于显示过程,有一个专门的事件。QWidget对象处理/订阅PaintEvent,请参阅

此事件处理程序可以在子类中重新实现,以接收事件中传递的绘制事件。绘制事件是重新绘制全部或部分小部件的请求

调用时,
QLineEdit::setText()
,小部件将在下次触发显示事件时根据操作系统配置、刷新率等重新绘制

对于高级交互,Qt使用基于机制的类似模式:

观察者模式在GUI应用程序中随处可见,通常会产生一些样板代码。创建Qt的目的是删除这个样板代码,并提供一个好的、干净的语法,而信号和插槽机制就是答案