crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> глюк с QTableWidget
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 в смысле чем он тут может помочь?

:rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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ух битные
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 4.1.2026, 14:00