QWidget中使用qml界面 ,qml界面大小自动跟随QWidget

在QWidget 中 嵌入qml界面 使用下面方式即可:

	QQuickWidget* quickWidget = new QQuickWidget;
	//加载qml文件
	quickWidget->setSource(QUrl("./Resources/test.qml"));
	//添加到widgt中
	ui.widget->layout()->addWidget(quickWidget);

使用时, qml文件必须指定父项目(根项目) 的width 和 height 才能正常显示
且在widget中 ,qml大小是固定的,无法跟随widget改变
要实现跟随改变只需设置下即可:

	quickWidget->setResizeMode(QQuickWidget::ResizeMode::SizeRootObjectToView);
为了在QML界面插入一个QWidget控件,可以按照以下步骤进行操作: 1.使用QQuickView类创建一个用于显示QML用户界面窗口。 2.使用QQmlContext类定义QML引擎的上下文。通过该类可实现C++QML属性数据的交互,比如读取QML控件的公开属性(成员变量)。 3.在C++创建一个QWidget控件,并使用QWidget::createWindowContainer()函数将其嵌入到QQuickView。 4.将QWidget控件导入到QML,以便在QML界面使用。 下面是一个示例代码,演示如何在QML界面插入一个QWidget控件: ```cpp // 创建QQuickView窗口 QQuickView *view = new QQuickView(); view->setResizeMode(QQuickView::SizeRootObjectToView); // 获取QML引擎上下文 QQmlContext *context = view->rootContext(); // 创建QWidget控件 QWidget *widget = new QWidget(); widget->setWindowTitle("QWidget in QML"); widget->setMinimumSize(80, 30); // 将QWidget控件嵌入到QQuickView QWidget *container = QWidget::createWindowContainer(widget, view); container->setMinimumSize(80, 30); container->setMaximumSize(200, 100); container->move(0, 0); container->show(); // 将QWidget控件导入到QML context->setContextProperty("myWidget", widget); // 加载QML文件 view->setSource(QUrl("qrc:/main.qml")); view->show(); ``` 在上面的代码,我们首先创建了一个QQuickView窗口,并获取了QML引擎上下文。然后,我们创建了一个QWidget控件,并使用QWidget::createWindowContainer()函数将其嵌入到QQuickView。接下来,我们将QWidget控件导入到QML,以便在QML界面使用。最后,我们加载了QML文件并显示了QQuickView窗口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值