Russian Qt Forum

Qt => Qt Quick => Тема начата: OKTA от Январь 23, 2012, 11:58



Название: need help
Отправлено: 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"

            }
        }
    }
}
}


Название: Re: need help
Отправлено: asvil от Январь 23, 2012, 14:57
А вы еще не поняли что qml какашка. Хотите рисовать картинки вот вам dom, вот вам jquery. Хватит уже верить в сказки "декларативность и 1001 кнопочка".


Название: Re: need help
Отправлено: OKTA от Январь 23, 2012, 17:24
у меня на этой какашке уже интерфейс на 80 % готов))) остались небольшие мелочи))))) приведу причем два довода за какашку!)
1. в версии Qt 5.0 центральным по интерфейсу уже станет Qt Quick
2. помучиться немножко с мелочами (учитывая, что в 5.0 все стандартные элементы десктопные будут в релизе) гораздо проще, нежели ковыряться через Qt DEsigner, создавая свой собственый стиль интерфейса =)


Название: Re: need help
Отправлено: twp от Январь 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
   ...
 


Название: Re: need help
Отправлено: OKTA от Январь 24, 2012, 00:06
Уже сделал иначе, но все равно спасибо! =)