本文主要是介绍在 QGraphicsScene 中嵌入 QWidget,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
图形视图对将任何 widget 嵌入到场景中提供了无缝的支持。可以嵌入简单的 widget,例如:QLineEdit、QPushButton;也可以是复杂的 widget,例如:QTabWidget,甚至是完整的主窗口。
要将 widget 嵌入场景中,只需要简单地调用 QGraphicsScene::addWidget(),或者创建一个 QGraphicsProxyWidget 对象并将 widget 手工地嵌入其中。
QGraphicsProxyWidget
QGraphicsProxyWidget 类提供了一个代理层,用于在 QGraphicsScene 中嵌入一个 QWidget。
QGraphicsProxyWidget 嵌入基于 QWidget 的部件,例如:QPushButton、QFontComboBox,甚至 QFileDialog、QGraphicsScene。它在两个对象之间转发事件,并在 QWidget 的基于整数的 geometry 和 QGraphicsWidget 的基于 qreal 的 geometry 之间进行转换。
QGraphicsProxyWidget 支持 QWidget 的所有核心功能,包括:Tab 焦点、键盘输入、拖放和弹出窗口。还可以嵌入复杂的 widget,例如:带有子 widget 的 widget。
QGraphicsProxyWidget 通过为每个 popup 创建一个子代理
这篇关于在 QGraphicsScene 中嵌入 QWidget的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!