crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

revers
  опции профиля:
сообщение 21.12.2009, 23:39
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 21.12.2009
Пользователь №: 1326

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вопрос тем, кто разбирался с вышедшим declarative. Вот код файла "textInput.qml":
import Qt 4.6
 
Rectangle {
    id: main
    width: 800; height: 600
    color: "blue"
    signal up()
    TextInput {
        id: inp
        text: "Text"
        color: "white"
    }
    focus: true
    Keys.onPressed: { inp.text = "Up"; main.up() }
    MouseRegion {
        anchors.fill: parent
        onClicked: main.up()
    }
}

Мне почти удалось заставить это работать, добавлением следующих строк в конструктор главного виджета:
MainWindow::MainWindow(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    qmlView = new QmlView(this);
    qmlView->setContentResizable(true);
    connect(qmlView, SIGNAL(errors(QList<QmlError>)), this, SLOT(printErrors(QList<QmlError>)));
    QUrl url = QUrl::fromLocalFile("\.\.\\textInput.qml");
    qmlView->setUrl(url);
    qmlView->execute();
    this->resize(qmlView->sizeHint());
    qmlView->show();

    rootItem = qmlView->root();
    connect(rootItem, SIGNAL(up()), this, SLOT(onUp()));
}

"Почти" - потому что не работают сигналы от клавиатуры. Как видно из qml-файла, по нажатию клавиши/кнопки мыши посылается один и тот же сигнал. Но код из слота onUp() выполняется только, если кликаем мышью. При этом, если открыть qml-ку в qmlviewer'е, все работает на отлично. Желания же копаться в исходниках этого вьювера особо нет...
Может кто знает почему это все работает не до конца, и объяснит как это исправить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 8.6.2025, 23:51