Russian Qt Forum
Ноябрь 27, 2024, 00:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Запрет редактирования QStringListModel
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Запрет редактирования QStringListModel (Прочитано 7587 раз)
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Запрет редактирования QStringListModel
«
:
Декабрь 07, 2008, 15:25 »
День добрый всем)
Тупой вопрос - собственно как запретить редактирование QStringListModel (да и вообще моделей в частности).
Вызовом чего то типа setEditable(false) или resetModelFlags(Qt::ItemIsEditable) например.
Что то вообще не нахожу, как такое сделать...
кутя 4.4.х
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Запрет редактирования QStringListModel
«
Ответ #1 :
Декабрь 07, 2008, 15:38 »
Это можно сделать через view. См. QAbstractItemView::setEditTriggers
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #2 :
Декабрь 07, 2008, 16:19 »
Ага, точно ) благодарствую
Еще одна проблема - надо запихнуть в модель около 600 000 строк.
Само по себе назначение модели происходит довольно быстро (1-2 сек, это вполне приемлемо).
Но при отрисовке проходит 10-15 секунд, прежде чем модель обновится (при этом весь гуй висит).
Сигналы и репаинты отключаю, как надо:
ui.lvIndex->blockSignals(true);
ui.lvIndex->setUpdatesEnabled(false);
В чем может быть дело?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #3 :
Декабрь 08, 2008, 10:41 »
Написал репорт троллям. ИМХО баг серьезный.
Цитировать
Product
Qt
Function
Itemviews
Version
4.4.3
Platform
Windows XP
Platform details
Intel Core2 Duo CPU 1.9x2 mHz, 2gb RAM
Compilers
MSVC
Compiler details
Subject
QListView freezes GUI
What I did
Using QStringList model, I've populated a hidden QListView with the 600 000 lines.
Then I called show() for it in a certain moment.
What I expected to see
Displaying of QListView with 600000 items.
What I got instead
There is 5-10 second delay after show() before QListView appears.
GUI is frozen completely this period.
More information
Filling QStringList and model itself is a quite fast, but calling show() causes GUI to become frozen
(seems that it happens while processing painting event of QListView).
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #4 :
Декабрь 09, 2008, 11:12 »
Написали в ответ, что 600 000 итемов для модели - это МНОГО...
О_о
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Запрет редактирования QStringListModel
«
Ответ #5 :
Декабрь 09, 2008, 12:18 »
Цитата: Racheengel от Декабрь 09, 2008, 11:12
Написали в ответ, что 600 000 итемов для модели - это МНОГО...
О_о
Вобще для модели как таковой или для QStringListModel? Попробуй написать свою модель.
ЗЫ: Пол года назад написал модель для проекта KDChart (KDAB). Хранит несколько миллионов строк, проблем и жалоб пока не поступало )
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #6 :
Декабрь 09, 2008, 13:29 »
Я сначала пробовал с QStringListModel, потом сделал свою. Та же лажа.
Похоже, что не модель тормозит, а вьюха.
Причем именно при первом показе.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #7 :
Декабрь 10, 2008, 02:22 »
Нашел в чем проблема.
Не забывать ставить setUniformItemSizes(false).
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Sergey B.
Программист
Offline
Сообщений: 544
Re: Запрет редактирования QStringListModel
«
Ответ #8 :
Декабрь 10, 2008, 08:51 »
Цитата: Racheengel от Декабрь 10, 2008, 02:22
Нашел в чем проблема.
Не забывать ставить setUniformItemSizes(false).
отпиши тролям.
в ассистенте написано:
Код:
By default, this property is false.
«
Последнее редактирование: Декабрь 10, 2008, 08:53 от Sergey B.
»
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #9 :
Декабрь 10, 2008, 11:21 »
Блин, имел в виду, что нельзя оставлять false... (писал ночью в полусне)
Когда false, для каждой строки выполняется измерение высоты согласно установленного шрифта,
а Qt со шрифтами работает "ну очень" быстро.
True спасает отцов русской демократии
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #10 :
Декабрь 10, 2008, 15:18 »
Тролли пообещали обновить доку
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
SABROG
Гость
Re: Запрет редактирования QStringListModel
«
Ответ #11 :
Декабрь 10, 2008, 17:52 »
Цитата: Racheengel от Декабрь 10, 2008, 02:22
Нашел в чем проблема.
Не забывать ставить setUniformItemSizes(false).
Это относится только к QListView насколько я понял ? В других итемвьюверах я такого метода не нашел...
Если я правильно понял, то в итоге все сводится к вызову sizeHint() и по сути для других вьюшек можно этот метод переопределить через делегата или использовать какие-нибудь трюки типа фиксированного размера строк.
«
Последнее редактирование: Декабрь 10, 2008, 18:04 от SABROG
»
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Запрет редактирования QStringListModel
«
Ответ #12 :
Декабрь 10, 2008, 19:02 »
Да, получается, что это только для QListView.
Для дерева есть setUniformRowHeight() помоему.
Хотя имхо логичней бы было иметь данную функцию в QAbstractItemView - действия по сути одни и те же...
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...