Russian Qt Forum

Qt => Qt Quick => Тема начата: Shurick от Июль 01, 2014, 11:06



Название: Удаление компонентов из меню
Отправлено: Shurick от Июль 01, 2014, 11:06
Приветствую.

На Qt 5.2 & Qt Quick 2.2 cтолкнулся с такой проблемой:
Если я хочу динамичеки удалить объект из пункта контекстного меню, то объект удаляется, но весь виджет не перерисовыается и объект исчезает только когда перересуются другие объекты.
Пример:
Код:
import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 1.1

Window {
    visible: true
    width: 360
    height: 360

    Rectangle {
        id: stub
        x: 10; y: 10
        width: 80; height: 80
        border.color: "black"
    }

    Rectangle {
        id: rect
        x:50; y:50
        width: 100; height: 100
        color: "blue"
        border.width: 2
        border.color: "red"

        Menu {
            id: menu
            MenuItem {
                text: "Test"
                onTriggered: rect.destroy()
            }

        }

        MouseArea {
            anchors.fill: parent
            onClicked: {
//                rect.destroy()
                anchors.fill = undefined
                menu.popup()
            }
        }
    }
}

Если вызвать меню menu и выбрать пункт Test nо квадрат rect исчезнет с экрана только когда мы изменим, к примеру, размер окна.

Это бага или фича? И как ее лечить?

P.S.:
OS: Ubuntu 14.04


Название: Re: Удаление компонентов из меню
Отправлено: navrocky от Июль 01, 2014, 13:03
Не наблюдаю в твоем примере такого. Qt 5.3


Название: Re: Удаление компонентов из меню
Отправлено: Shurick от Июль 01, 2014, 13:07
А операционка какая?


Название: Re: Удаление компонентов из меню
Отправлено: navrocky от Июль 01, 2014, 17:38
А операционка какая?

OpenSuse 13.1 x64, Qt 5.3.1

Думаю не в операционке дело, а просто пофиксили.


Название: Re: Удаление компонентов из меню
Отправлено: Shurick от Июль 02, 2014, 06:56
Попробовал на чистой машине: Ubuntu 14.04 x64 with Qt 5.3.1(Last version via online installer) - так же себя ведет. Еще и меню отображается через раз.