Как перерисовать QTableWidget |
Здравствуйте, гость ( Вход | Регистрация )
Как перерисовать QTableWidget |
skmdeveloper |
20.10.2009, 5:33
Сообщение
#1
|
Студент Группа: Участник Сообщений: 23 Регистрация: 18.9.2009 Пользователь №: 1107 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть класс унаследованный от QTableWidget.
В некоторые колонки значение выбирается с помощью диалога. Т.к. по некоторым причинам диалоговые окна применять у меня не годится, то возврат значений в ячейке проичходит программными ухищрениями, с помошью дополнительного объекта-приемника значений. В принципе все работает. Но только QTableWidget перерисовывается, когда получает фокус мыши. Repaint() не помогает. Как заставить перерисоваться виджет при программном изменении значений в таблице? Наверное, нужно как-то принудительно запустить цикл обработки событий. А как, не нашел. P.S. И еще дополнительный вопрос. Как управлять внешним видом заголовка дочернего окна в MDI? Например сделать текст заголовка окна не по центру, а по левому краю. |
|
|
SABROG |
20.10.2009, 8:25
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
В некоторые колонки значение выбирается с помощью диалога. Т.е. сейчас у тебя используется диалог? диалоговые окна применять у меня не годится И ты хочешь уйти от диалога, т.е. переписать код? Чем обычное редактирование ячейки не устраивает? Как заставить перерисоваться виджет при программном изменении значений в таблице? Вроде как сам должен перерисовываться. Надо смотреть код. |
|
|
Litkevich Yuriy |
20.10.2009, 9:08
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
skmdeveloper |
20.10.2009, 12:46
Сообщение
#4
|
Студент Группа: Участник Сообщений: 23 Регистрация: 18.9.2009 Пользователь №: 1107 Спасибо сказали: 0 раз(а) Репутация: 0 |
И ты хочешь уйти от диалога, т.е. переписать код? Чем обычное редактирование ячейки не устраивает? Я пишу программную платформу типа 1С Предприятия. Выбирать элементы справочника в недиалоговых окнах (как в 1С) у меня получается. Даже если справочник одновременно открыт в нескольких окнах, то изменения между ними синхронизируются, но почему-то только после получения ими фокуса мыши. Вот функция-слот, которая получает возвращаемое значение: Раскрывающийся текст
Ничего особенного, кажется. |
|
|
trdm |
20.10.2009, 14:11
Сообщение
#5
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
Я пишу программную платформу типа 1С Предприятия. хм, я тоже. Давно тебе говорил, хостанись и сцылку дай. Выбирать элементы справочника в недиалоговых окнах (как в 1С) у меня получается. Даже если справочник одновременно открыт в нескольких окнах, то изменения между ними синхронизируются, но почему-то только после получения ими фокуса мыши. таймер поставь, ы? Но я бы пошел другим путем, портировал бы: http://www.1cpp.ru/docum/html/TableField.html на Qt. Одно "но" я не работал с моделями/представлениями плотно, может там все есть что мне надо.. |
|
|
skmdeveloper |
20.10.2009, 15:01
Сообщение
#6
|
Студент Группа: Участник Сообщений: 23 Регистрация: 18.9.2009 Пользователь №: 1107 Спасибо сказали: 0 раз(а) Репутация: 0 |
Давно тебе говорил, хостанись и сцылку дай. Пока некогда и нечего - код в постоянной разработке и переработке. Как только более-менее утрясется - выложу. Одно "но" я не работал с моделями/представлениями плотно, может там все есть что мне надо.. Это самое что нужно. Любые типы данных, в том числе объекты любых классов, можно приводить к типу QVariant и держать непосредственно в ячейках таблицы. А отображать их в ячейках в удобном виде. Но я бы пошел другим путем, портировал бы: http://www.1cpp.ru/docum/html/TableField.html Табличное поле и у меня планируется - таблица как обычный тип данных. Ну я уж слишком много написал - привязываться к чему либо уже поздно. Табличные элементы управления у меня функционируют нормально - с MVC разобрался, кроме описанного мной почти не заметного в работе недостатка. Думаю, проблема все таки разрешима. Тем более стараюсь по возможности придерживаться стиля Qt - а |
|
|
trdm |
20.10.2009, 15:17
Сообщение
#7
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
Вот сорцы:
А ТЗ есть? Намыль если есть, помотрю, где можем пересечься. Могу свое в ответку кинуть, оно правда не доработано.
Прикрепленные файлы
|
|
|
skmdeveloper |
20.10.2009, 17:04
Сообщение
#8
|
Студент Группа: Участник Сообщений: 23 Регистрация: 18.9.2009 Пользователь №: 1107 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
MoPDoBoPoT |
20.10.2009, 17:22
Сообщение
#9
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
По-моему после изменения данных надо сигнализировать об этом
|
|
|
skmdeveloper |
20.10.2009, 19:05
Сообщение
#10
|
Студент Группа: Участник Сообщений: 23 Регистрация: 18.9.2009 Пользователь №: 1107 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема устранилась косвенным способом, после того как поправил еще одну проблему. Почему то после выбора элемента активным становилось не начальное дочернее окно, а первое по списку. Пришлось реализовать запоминание текущего окна
Раскрывающийся текст
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 18:25 |