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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Потяните вниз чтоб обновить  (Прочитано 4282 раз)
Ubuntu_linux
Гость
« : Декабрь 15, 2011, 15:50 »

В всяких прогах используется ListView для отображения списков айтемов, но есть прикол-потяни и список обновиться. Как это сделать?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Декабрь 15, 2011, 16:09 »

Может ListView во Flickable засунуть, когда тянешь - появляется элемент с надписью, отпускаешь - contentY меняется, чтобы выровнять ListView. Ну а соответственно когда появилась надпись - обновлять модель.
P.S. Это первое, что пришло в голову.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Ubuntu_linux
Гость
« Ответ #2 : Декабрь 15, 2011, 16:15 »

но дело в том, что тогда надпись будет все время висеть сверху, а она должна прятатся.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #3 : Декабрь 15, 2011, 16:54 »

Может я непонятно написал просто Улыбающийся
Цитировать
отпускаешь - contentY меняется, чтобы выровнять ListView.
Я имел в виду, что при отпускании скрывается надпись и соответственно меняется contentY у Flickable, чтобы выровнять ListView.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #4 : Декабрь 15, 2011, 17:20 »

Код:
Item {
    width: 150
    height: 150

    Text {
        id: label
        anchors.top: list.top
        text: "Updating..."
        font.pixelSize: 14
        visible: list.contentY < 0
    }
    ListView {
        id: list
        anchors.fill: parent
        model: 10
        delegate: Text {
            text: "Item " + index
            color: "red"
        }

        onContentYChanged: {
            if (contentY < -label.paintedHeight)
                contentY = -label.paintedHeight;
        }
    }
}

Вот простой пример. Если нужно, чтобы текст был прикреплен к первому элементу списка - можно поиграться с header.
P.S. Пример с Flickable был плохой идеей Улыбающийся
« Последнее редактирование: Декабрь 15, 2011, 17:21 от kibsoft » Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Ubuntu_linux
Гость
« Ответ #5 : Декабрь 19, 2011, 02:59 »

Да, хорошая идея, так и делаю....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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