如何将 QML 文件分配给主窗口/应用程序
How to assign QML file to MainWindow/Application
情况
我在这里有我的main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickView>
#include <QQmlContext>
#include "root.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView view;
testApp::Root data;
view.rootContext()->setContextProperty("dataContext", &data);
view.setSource(QUrl::fromLocalFile("main.qml"));
view.show();
return app.exec();
}
和我的main.qml
在这里
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World!!!")
}
普罗贝尔姆
每当我启动我的应用程序时,它都不会将main.qml
中的值分配给我的主窗口。
例如: main.qml 中的属性width,height的值为640,480。但是每当我启动应用程序时,我的窗口都会小得多(是的,我试图给它们不同的值(
问题
如何说程序:他应该在我的主窗口中使用main.qml。
如果您使用的是 QQuickView,那么根必须是 QQuickItem 作为 Item、Rectangle 等,因为 QQuickView 是一个窗口。
如果你想根窗口或应用程序窗口,那么你必须使用QQmlApplicationEngine。
在您的情况下,有 2 个窗口:一个是 QQuickView,另一个是窗口。
考虑到上述情况,您有以下 2 种选择:
- QQuickView
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView view;
testApp::Root data;
view.view.setResizeMode(QQuickView::SizeRootObjectToView);
view.rootContext()->setContextProperty("dataContext", &data);
view.setSource(QUrl::fromLocalFile("main.qml"));
view.setTitle("Hello World!!!")
view.show();
return app.exec();
}
import QtQuick 2.12
import QtQuick.Window 2.12
Item {
width: 640
height: 480
}
- QQmlApplicationEngine
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
testApp::Root data;
engine.rootContext()->setContextProperty("dataContext", &data);
engine.load(QUrl::fromLocalFile("main.qml"));
return app.exec();
}
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World!!!")
}
相关文章:
- 如何将一个窗口保留在另一个应用程序窗口的前面
- 如何从 Win32 C++ 应用程序输出到父控制台窗口?
- 从运行服务的应用程序代码中提取窗口句柄
- 没有运算符"="与这些操作数匹配,JUCE 窗口演示应用程序
- 如何使用C++确定应用程序是否已在窗口中启动?
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 用C++编写.Net窗口应用程序
- 如何将 QML 文件分配给主窗口/应用程序
- 将WM_CHANGEUISTATE发送到窗口应用程序后,当用鼠标访问菜单时,助记符不会显示在系统菜单上
- MSBuild 未在控制台窗口应用程序中使用 "system" 进行编译
- QT通过单击Menubar C 移动整个窗口/应用程序
- 从控制台应用程序启动窗口应用程序
- 如何在QML无窗口应用程序中设置拖放区域
- 如何覆盖其他窗口应用程序的元素?
- 使用MINGW在窗口应用程序中压制系统("command")控制台窗口
- 将二维数组 double[][] 传递给 c# 窗口应用程序
- OpenGL窗口应用程序检查事件更新的频率
- 使用C++窗口应用程序加载Linux格式的文本文件
- 是否可以编写一个windows应用程序,当在另一个窗口应用程序中选择文本时,该应用程序会收到通知
- 如何使用c++ /Qt5构建无窗口应用程序?