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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Затуп с массивом кнопок  (Прочитано 5189 раз)
Vexator
Гость
« : Август 20, 2009, 04:35 »

Доброго времени суток всем!

Сделал такую штуку, объявил массив кнопок

Код
C++ (Qt)
QMapButton *map[5][5];
 
где QMapPutton это наследник QPushButton'а, в котором добавлено пару новых переменных с интерфейсом для их использования.

в конструкторе задал ее как:
Код
C++ (Qt)
for (int i=0;i<5;i++)
{
      for(int j=0;j<5;j++)
      {
      map[i][j] = new QMapButton(this,i,j); //i,j - используються внутри кнопки
      map[i][j]->setPixmap(...);
       //и .т.д.
      }
}
 

и все вроде ровно, и кнопки рисуються и т.д. и т.п.

но! после события (от сети), когда необходимо считать значение из одной из переменных в нужной кнопке, происходит критический вылет (в данном случае в клетке 4,4), ставил 6х6, тогда вылетает 3,1...

прогнал отладчиком и что заметил, что да, при создании класса все ровно...
но после выхода из конструктора, указатель сбивается... т.е. он указывает туда же что и ранее, но программа во время работы пишет в эту область памяти, будто она и не зарезервирована за классом... что и приводит к тому, что по адресу ссылки лежит какой то мусор... отчего это происходит??? и почему только на 1й ссылке?... такое чуство что я не правильно создал массив кнопок (ранее такого не делал).. и по какой то причине new не блокирует область котрую я выделяю кнопкам...
может кто сказать в чем может быть косяк и как сделать это дело правильно?

// иногда сам указатель уже начинает указывать в пустоту...
« Последнее редактирование: Август 20, 2009, 05:44 от Vexator » Записан
Vexator
Гость
« Ответ #1 : Август 20, 2009, 06:31 »

в чем причниа столь странного поведения не осознал... отчего то обратил внимание, что в объекте myClass в main.cpp , отчего то реквезиты совсем не моего класса myClass (это видно только при отладке) , а еще старого его варианта, где очень многих реквизитов или не было, или они были другого "размера"... после полной пересборки проекта все поехало нормально.. а чем может быть вызвано подобное поведение MSVS ?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Август 20, 2009, 07:55 »

видимо тем, что модуль не пересобрался... такое иногда бывает - меняешь сигнатуру с func(T&) на func(const T&) - не собирается с ошибкой линковки (пытается найти func(T&)). Правда это под migw
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #3 : Август 20, 2009, 08:03 »

Я для создания подобного рода массивов использую QList, я думаю может в этом дело.
Записан
Vexator
Гость
« Ответ #4 : Август 20, 2009, 08:31 »

Я для создания подобного рода массивов использую QList, я думаю может в этом дело.
кстати здравая идея, чет я сразу не догадался так делать..
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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