Russian Qt Forum
Май 14, 2024, 16:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: need help  (Прочитано 3391 раз)
OKTA
Гость
« : Январь 23, 2012, 11:58 »

Есть вот такой код. Некий прообраз выпадающего меню. Попробуйте в qmlviewer его запустить - нажимаете в поле - открывается список - выбираем что-нибудь - список закрывается, но текущая надпись остается видимой))) Что не так?))

Код:
import QtQuick 1.1

Item {
    width: 400
    height: 500
    transformOrigin: Item.TopRight
    scale: 1


Rectangle {
    id: drop
    property bool open: false
    x: 112
    y: 51
    width: 200
    height: open ? list_view.count*18+2 : 20
    border.color: "black"
    smooth: true
    radius: 3


    ListView {
        id: list_view
        x: 1
        y: -1
     //   width: parent.width
        anchors.fill: parent
        anchors.margins: 1
        interactive: false
        delegate:
            Component {
            id: listDelegate

            Item {
                property int mailId: mailId
                id: delegateItem
                width: parent.width; height: 18

//                clip: true

                Rectangle { id: back; anchors.fill: parent; color: "#ffffff"; }
                Rectangle { id: rectangle1;  anchors.top: parent.top; anchors.topMargin: -0.5; height: 1; color: "#E6E6E6"; opacity: 1; width: parent.width; }



                    Text {
                        text: name
                        font.pixelSize: 14
                        font.bold: true
                        color : "#1A1A1A"
                        width: parent.width
                        anchors.left: parent.left
                        anchors.leftMargin: 24
                        elide: "ElideRight"
                   }
                    MouseArea {
                        anchors.fill: parent
                        hoverEnabled: true
                        onEntered: back.color = "yellow"
                        onExited: back.color = "#ffffff"
                        onClicked: {mmodel.move(index, 0, 1); drop.open = !drop.open; console.log(drop.height, list_view.height)}
}
                            }
    }
        model: ListModel {
            id: mmodel
            ListElement {
                name: "Grey"

            }

            ListElement {
                name: "Red"

            }

            ListElement {
                name: "Blue"

            }

            ListElement {
                name: "Green"

            }
        }
    }
}
}
Записан
asvil
Гость
« Ответ #1 : Январь 23, 2012, 14:57 »

А вы еще не поняли что qml какашка. Хотите рисовать картинки вот вам dom, вот вам jquery. Хватит уже верить в сказки "декларативность и 1001 кнопочка".
Записан
OKTA
Гость
« Ответ #2 : Январь 23, 2012, 17:24 »

у меня на этой какашке уже интерфейс на 80 % готов))) остались небольшие мелочи))))) приведу причем два довода за какашку!)
1. в версии Qt 5.0 центральным по интерфейсу уже станет Qt Quick
2. помучиться немножко с мелочами (учитывая, что в 5.0 все стандартные элементы десктопные будут в релизе) гораздо проще, нежели ковыряться через Qt DEsigner, создавая свой собственый стиль интерфейса =)
Записан
twp
Гость
« Ответ #3 : Январь 23, 2012, 18:33 »

Код
Javascript
   ...
   ListView {
       id: list_view
       x: 1
       y: -1
       anchors.fill: parent
       anchors.margins: 1
       interactive: false
       delegate: Item {
               property int mailId: mailId
               id: delegateItem
               width: parent.width; height: 18
               visible: drop.open || !index
   ...
 
Записан
OKTA
Гость
« Ответ #4 : Январь 24, 2012, 00:06 »

Уже сделал иначе, но все равно спасибо! =)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.144 секунд. Запросов: 20.