视图如何在幕后更新
How does View get updated behind the scenes?
因此,当我在qlabel上使用setText()时,qt会自动更新我的视图/GUI,并显示新的文本,但是幕后会发生什么?使用setText()吗?
之类的函数时,是否有更新功能会自动调用。谢谢!
您应该检查此链接中的基本文档。
内部系统要复杂一些,但是通常,它遵循观察者模式。这种机制允许检测用户行动或变化状态,并响应此操作。
低级交互,例如通过事件系统实现屏幕
来实现屏幕在QT中,事件是从抽象QEVENT类得出的对象,它代表了在应用程序中或由于应用程序需要了解的外部活动而发生的事物。可以通过QOBject子类的任何实例接收和处理事件,但它们与小部件特别相关。本文档描述了如何在典型应用程序中交付和处理事件。
因此,关于显示过程,有一个专门的事件。Qwidget对象处理/订阅paintEvent,请参阅QWidget::paintEvent
。
可以在一个子类中重新完成此事件处理程序,以接收事件通过的油漆事件。油漆事件是重新粉刷所有小部件的要求。
当您致电时,QLineEdit::setText()
时,小部件将在下次触发显示事件的情况下重新粉刷,以操作系统配置,刷新速率等。
对于高级相互作用,QT使用基于信号/插槽机制的类似模式:
观察者模式在GUI应用中无处不在,通常会导致一些样板代码。创建了QT,它是通过删除此样板代码并提供漂亮且干净的语法的想法,信号和插槽机制是答案。
相关文章:
- 从C++本机插件更新Vector3数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- QT Filesystembrowser:如何更改根目录和更新视图
- VTK:视图在用户交互后才会更新
- 更新模型/视图方案中 QXXXView (QTableView, QTreeView,..) 元素的显示工具提示
- 视图如何在幕后更新
- QT MVC 模式未更新视图 - 特定的 SimpleTreeModel 示例
- 根据用户的视图更改更新模型
- 从其他线程更新QT图形视图
- MFC SDI在更改属性时从INI读取并更新视图字符串
- 在 OnLButtonUp 中滚动和更新视图
- 在具有多个视图的 QML 中查看、编辑和更新数据(来自C++),而数据保留在C++(订阅数据)中
- Qt模型视图:当数据存储和更改数据时,更新模型和视图的正确方法是什么::vector
- OpenGL 不会更新绘图视图
- 如何在Qt小工具项目中更新图形视图(Qt Creator)
- 如何从另一个线程更新列表视图
- 列表视图未更新
- 视图类没有接收更新的模型类数据
- 更新QSqlTableModel后不重新绘制视图