Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
borune |
4.1.2011, 20:45
Сообщение
#1
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Господа, помогите разобраться. Полдня копаю и ни к чему не пришел.
Есть такой код: Раскрывающийся текст QTableWidget *table; .... void MainWindow::my_funct0() { table = new QTableWidget(this); table->setColumnCount(6); table->setRowCount(2); table->setGeometry(40,90,10+table->columnWidth(0)+table->columnWidth(1)+table->columnWidth(2)+table->columnWidth(3)+table->columnWidth(4)+table->columnWidth(5),40+table->rowCount()*50); table->show(); } Выделение ячеек в таком случае возможно только один раз. То есть при клике мышью на какую-либо ячейку таблицы эта ячейка выделяется цветом, но при клике на другую ячейку сразу после этого выделения не происходит. Если я изменяю вышеприведенный код вот так: Раскрывающийся текст QTableWidget *table; .... void MainWindow::my_funct1() { table = new QTableWidget(this); table->show(); delete table; table = new QTableWidget(this); table->setColumnCount(6); table->setRowCount(2); table->setGeometry(40,90,10+table->columnWidth(0)+table->columnWidth(1)+table->columnWidth(2)+table->columnWidth(3)+table->columnWidth(4)+table->columnWidth(5),40+table->rowCount()*50); table->show(); } то любая ячейка выделяется сколько угодно раз. Причем если убрать первую функцию show(), то результат будет точно таким же, как и в первом случае. Объясните, пожалуйста, в чем тут дело. |
|
|
|
|
borune |
4.1.2011, 22:14
Сообщение
#2
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Описанная проблема проявляется на 7ке. В ХР ее нету. Версии КуТэ стоят одинаковые.
|
|
|
|
|
Litkevich Yuriy |
4.1.2011, 22:46
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
borune, а компилишь в какой ОСьке?
|
|
|
|
|
borune |
5.1.2011, 0:48
Сообщение
#4
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 4.1.2011, 22:46) Link borune, а компилишь в какой ОСьке? ну соответственно в 7ке и в хр. под линями еще не пробовал) |
|
|
|
|
ufna |
5.1.2011, 0:56
Сообщение
#5
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5
|
Может скинешь код а главное скомпилированный пример?
|
|
|
|
|
borune |
5.1.2011, 2:49
Сообщение
#6
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(ufna @ 5.1.2011, 0:56) Link Может скинешь код а главное скомпилированный пример? код я выше привел. ничего другого я с таблицей не делаю. Точнее делаю, конечно, но при проверке все закомментировал дабы найти место расположения глюка. Всю программу кидать не имеет смысла, могу создать отдельный проект, где будет только работа с таблицей. |
|
|
|
|
Litkevich Yuriy |
5.1.2011, 2:52
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(borune @ 5.1.2011, 4:49) Link могу создать отдельный проект, где будет только работа с таблицей. вот это и надо, минимальный компилируемый пример, который воспроизводит ошибку. А иначе людям лень будет самим, что-то набивать да компилировать.
|
|
|
|
|
borune |
5.1.2011, 12:23
Сообщение
#8
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
к сожалению, пример не воспроизводит ошибку..надо копать глубже
но вопрос остается..один и тот же код на разных ос работает по-разному.. |
|
|
|
|
ufna |
5.1.2011, 12:33
Сообщение
#9
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5
|
Если в примере ошибки нет, а в проекте есть => косяк скорее всего в каком-нибудь кэше. Очистку проекта и re-qmake делал?
|
|
|
|
|
borune |
5.1.2011, 18:52
Сообщение
#10
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(ufna @ 5.1.2011, 12:33) Link Если в примере ошибки нет, а в проекте есть => косяк скорее всего в каком-нибудь кэше. Очистку проекта и re-qmake делал? даже комп перезагружал |
|
|
|
|
ufna |
5.1.2011, 21:29
Сообщение
#11
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5
|
Весь проект секретен? Можно в личку.
Если на двух оськах не пашет и на примере не воспроизводиться - косяк в конкретной реализации, а тут хз - очень многое может быть. |
|
|
|
|
DEADHUNT |
5.1.2011, 21:38
Сообщение
#12
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2
|
вся проблема в том что объект удаляется, а наверняка там ещё какой нибудь сигнал вызывается, поэтому в данном случае вместо delete лучше использовать deleteLater
|
|
|
|
|
borune |
7.1.2011, 0:43
Сообщение
#13
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(ufna @ 5.1.2011, 21:29) Link Весь проект секретен? Можно в личку. Если на двух оськах не пашет и на примере не воспроизводиться - косяк в конкретной реализации, а тут хз - очень многое может быть. Ну эта проблема не заслуживает такого серьезного, подхода я думаю) Только Вы неправильно прочитали - РАБОТАЕТ на хр, и НЕ работает на 7ке) Это, кстати, не единичный обнаруженный мной случай разной работы одной и той же программы в разных ОС. DEADHUNT, а что это за deleteLater? DEADHUNT в смысле чем он тут может помочь? |
|
|
|
|
ufna |
7.1.2011, 1:09
Сообщение
#14
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5
|
А, ну если работает на ХР и не работает на семерке (что означает на одном компе пашет а на втором нет, дело не в оськах), то дело на 95% в каком-нибудь кэше запавшем, сбившемся компиляторе/IDE и т.п.
|
|
|
|
|
Алексей1153 |
7.1.2011, 1:12
Сообщение
#15
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
иногда бывает , что ищешь странный глюк, ищешь... А потом делаешь полный принудительный ребилд всего - и оно начинает работать нормально
а иногда не начинает Сообщение отредактировал Алексей1153 - 7.1.2011, 1:13 |
|
|
|
|
Litkevich Yuriy |
7.1.2011, 13:36
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
а какая версия Qt?
|
|
|
|
|
borune |
7.1.2011, 20:03
Сообщение
#17
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 7.1.2011, 13:36) Link а какая версия Qt? на 4.6.0 в 7ке не работает, на 4.7.0 на 7ке не работает, на хр работает. все сборки 32ух битные |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 4.1.2026, 14:00 |