标签: qquickwidget

如何将QML视图嵌入到本机窗口中

我在尝试将QML视图插入本机OSX窗口时遇到问题.我知道这是可能的,但我不知道我做错了什么.

基本上,我的目标是,给定一个原生的NSView*然后嵌入一个基于QML的小部件.问题是,我确定它确实在视图中渲染了qml,但是它创建了一个额外的透明窗口,它似乎没有正确地重绘QML视图.

这是我正在使用的代码(请忽略所有内存泄漏):

@interface AppDelegate ()
-(void)processEvents;

@property(nonatomic) NSTimer* timer;
@property(nonatomic) QApplication* qt;
@end

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    NSWindow* window = [[[NSApplication sharedApplication] windows] objectAtIndex:0];
    NSView *view = [window contentView];
    assert(view);

    char* test[0];
    int count = 0;

    QApplication::instance()->setAttribute(Qt::AA_MacPluginApplication);
    _qt = new QApplication(count, test);

    QMacNativeWidget* native = new QMacNativeWidget(view);
    assert(native);

    QQuickWidget* qml = new QQuickWidget(native);
    qml->setSource(QUrl(QStringLiteral("main.qml")));

    QVBoxLayout* layout = new QVBoxLayout();
    layout->addWidget(qml);

    native->setLayout(layout);

    qml->show();
    native->show();


    NSView* qmlView = (NSView*)native->winId();
    [view addSubview:qmlView]; …
Run Code Online (Sandbox Code Playgroud)

cocoa qt qml qquickwidget qquickview

9
推荐指数
1
解决办法
875
查看次数

QQuickWidget和C++交互

我正在体验新的QQuickWidget.我如何在QQuickWidget和C++之间进行交互?

C++

QQuickWidget *view = new QQuickWidget();
view->setSource(QUrl::fromLocalFile("myqml.qml"));
view->setProperty("test", 0);

myLayout->addWidget(view);
Run Code Online (Sandbox Code Playgroud)

QML

import QtQuick 2.1

Rectangle {
    id: mainWindow
    width: parent.width
    height: parent.height

    Text {
        id: text
        width: mainWindow.width
        font.pixelSize: 20
        horizontalAlignment: Text.AlignHCenter
        verticalAlignment: Text.AlignVCenter
        text: test
    }
}
Run Code Online (Sandbox Code Playgroud)

text: test 不起作用: ReferenceError: test is not defined

如何通过C++为我的QML文件提供一些属性?

是否也可以在C++中获取Text对象并更新其文本?

c++ qt qquickwidget

7
推荐指数
1
解决办法
4413
查看次数

标签 统计

qquickwidget ×2

qt ×2

c++ ×1

cocoa ×1

qml ×1

qquickview ×1