Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Quick _ Вызовы из QML

Автор: zoonman 24.1.2011, 11:38

Не пойму, как осуществлять взаимодействие с QML-контейнером.

Программа выглядит так:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
        QDeclarativeView view;
        // enable semi-transparent
        QPalette palette;
        palette.setColor(QPalette::Base, Qt::transparent);
        view.setPalette(palette);
        view.setAttribute(Qt::WA_TranslucentBackground);

        // loading QML from file
        view.setSource(QUrl::fromLocalFile("../qml1/qml1.qml"));

        // disable OS GIU form-control
        view.setWindowFlags(Qt::FramelessWindowHint);

        view.show();

    return a.exec();
}




QML очень простой:

Rectangle {
            id: menu_1
            x:18
            y:2
            radius: 3
            width: 200
            height: 100
            color: "#80555555"
            visible: false
            MouseArea {
                hoverEnabled: true
                anchors.fill: parent
                onEntered: { menu_1.visible = true }
                onExited: { menu_1.visible = false }
                onClicked:{
                    Qt.quit()

                }
            }
        }


Хочу понять, как делать вызовы из QML во внешнюю программу.
Пытаюсь сделать простенький плеер с использованием Phonon.

Автор: panter_dsd 24.1.2011, 11:47

////////////////////////.h
class SomeClass : public QObject {
.....................
Q_INVOKABLE void someMethod (const QString& vlaue);
.........................
}
////////////////////////.cpp
declarativeView->rootContext ()->setContextProperty ("SomeClass", someClass);
///////////////////////.qml
SomeClass.someMethod ("Hello, world!");

Вот так это делается. Посмотри примеры, там все это есть.

Автор: zoonman 24.1.2011, 14:29

Цитата(panter_dsd @ 24.1.2011, 11:47) *
Посмотри примеры, там все это есть.

Посмотрел я примеры.

А как быть, если я хочу контекст приложения. Т.е. кнопка выхода из программы?
В вашем примере вроде как метод объекта или реализовывать выход из приложения через метод объекта?

Автор: panter_dsd 24.1.2011, 14:32

В someMethod делай выход из приложение.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)