crossplatform.ru

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

> Интеграция С++ в QML
Anarchist_42
  опции профиля:
сообщение 2.6.2014, 18:08
Сообщение #1


Новичок


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

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




Репутация:   0  


Всем здравствуйте, возникли некоторые трудности в написание программы на qml.

Что мне надо: вывод на экран изображения (несколько вложенных колец) которое зависит от параметров (берутся из inputText), по кнопке, которая находится на другом rectangle, по другой кнопке рисунок должен удалятся.

Что имею: класс-наследник QQuickPaintedItem, могу рисовать все с параметрами-константами, прописанными в подпрограмме и подпрограмма вызывается из rectangle в котором надо рисовать.

Что не смог реализовать: рисование по кнопке, удаление, передача параметров из inputText в подпрограмму рисования.

Сможете с чем либо помочь? Я так понял что передачу можно осуществлять через QQmlContext, так ли это?

А так же, можно ли как-нибудь обойтись без С++ при открытие файла-справки из меню?
MenuItem{
                text: qsTr("Referense")
                onTriggered: "функция вызова справки"
                }


Буду очень благодарен за помощь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Anarchist_42
  опции профиля:
сообщение 3.6.2014, 10:35
Сообщение #2


Новичок


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

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




Репутация:   0  


import QtQuick.Controls 1.1
import QtQuick 2.2
import Qt3D 2.0
import Qt3D.Shapes 2.0
import Circle 1.0

ApplicationWindow {
    id: window
    visible: true
    width: 1024
    height: 600
    title: "Frenel"
    //Меню программы
    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit()
            }
            MenuItem{
                text: qsTr("Referense")                   [color="#808080"]Что бы по нажатию запускался файл .chm[/color]
            }
        }
    }
    //Основное окно программы
    Image {
        id: image1
        height: 60
        anchors.fill: parent
        sourceSize.height: 600
        sourceSize.width: 1024
        source: "fon.jpg"
        //Загрузка модели
        Rectangle {...}
        //Изображение НГТУ
        Image {...}
        //Кнопка "Start"
        Rectangle{
            id: for_start;
            x: 600
            anchors.top: rectangle1.bottom
            anchors.topMargin: 11
            anchors.right: parent.right
            anchors.rightMargin: 424
            Button{
                id:start
                text:"Start"
//                onClicked: Circle.draw(slider1.value,slider1.value,                 [color="#808080"]По нажатию брал значения и [/color]
//                                       slider1.value,slider1.value)                           [color="#808080"]выводил на экран рисунок [/color]
            }
        }
        //Кнопка "Reset"
        Rectangle{
            id: for_reset
            x: 600
            anchors.top: rectangle1.bottom
            anchors.topMargin: 51
            anchors.right: parent.right
            anchors.rightMargin: 424
            Button{
                id:reset
                text:"Reset"
                onClicked: Circle.destroy();                                                [color="#808080"]По нажатию рисунок удалялся [/color]
            }
        }
        //Текстовое поле "Длина волны"
        Rectangle{...}
        //Текстовое поле "Радиус отверстия"
        Rectangle{...}
        //Текстовое поле "Раcстояние от источника до экрана с отверстием"
        Rectangle{...}
        //Текстовое поле "Расстояние от линзы до второго экрана"
        Rectangle{...}
        //Слайдер для "Длина волны"
        Rectangle{...}
        //Слайдер для "Радиус отверстия"
        Rectangle{...}
        //Слайдер для "Раcстояние от источника до экрана с отверстием"
        Rectangle{...}
        //Слайдер для "Расстояние от линзы до второго экрана"
        Rectangle{...}
        //Окно ввода значения для "Длина волны"
        Rectangle{...}
        //Окно ввода значения для "Радиус отверстия"
        Rectangle{...}
        //Окно ввода значения для "Раcстояние от источника до экрана с отверстием"
        Rectangle{...}
        //Окно ввода значения для "Расстояние от линзы до второго экрана"
        Rectangle{...}

      }
    //Малое окно для зон Френеля
    Rectangle {                                                                               [color="#808080"]Окошко где рисунок должен появляться[/color]
        id: rectangle2
        x: 800
        width: 214
        height: 214
        color: "#9795f9"
        anchors.right: parent.right
        anchors.top: parent.top
        anchors.rightMargin: 10
        anchors.topMargin: 10
        border.width: 2
//        Circle{
//            anchors.fill:rectangle1;
//        }
    }
}

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 26.11.2024, 13:03