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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QApplication::reg Class выкидывает ошибку  (Прочитано 2229 раз)
t.key
Гость
« : Апрель 03, 2010, 17:04 »

Использую 2d массив объектов который наследуется от QPolygon.
Когда массив маленький, все хорошо. Когда я его увеличиваю (примерно 50 х 140), на консоль выходит ошибка:
"QApplication::regClass: Registering window class failed. (НепонимающийНепонимающий Непонимающий НепонимающийНепонимающийНепонимающий?)"
и продолжает работать. Когда я сворачиваю окно, прога малость поработает и выкидывает.
Если есть кто сталкивавшийся с этой проблемой, или знающий причину помогите плз.
Есть конечно альтернатива, придумать другую логику, переписать, и надеется что этого больше не будет. Но эта идея как то не по мне.  Шокированный
Записан
SABROG
Гость
« Ответ #1 : Апрель 03, 2010, 17:10 »

Выкладывай полностью исходники, посмотрим.
Записан
t.key
Гость
« Ответ #2 : Апрель 03, 2010, 19:06 »

Полностью исходники выложить будет сложно. Там у меня 10 source  и 9 header файлов.
Логика в общем такая:
у меня MainPanel наследует QWidget, отлавливает mouseMoveEvent'ы и в конструкторе создает QThread который каждые 30 милисек сигналами вызывает repaint(), у MainPanel есть еще Panel который тоже наследует QWidget и отлавливает paintEvent который repaint'ится каждые 30 милисек. У MainPanel'а есть объект класса MapInfo  у которого 2d массив объектов класса Terrain наследующего QPolygon. Ошибка появляется сразу после создания MapInfo но до создания Panel.
Здесь сампл кода:
MainPanel:
Код:
...

MainPanel::MainPanel(QWidget *parent): QWidget(parent){
...

MapInfo *mapInfo = new MapInfo(MapInfo::New, this);
std::cout << "between this two\n";
playPanel = new PlayPanel(mapInfo, this);
layout->addWidget(playPanel);

...
}
...

MapInfo:
Код:
...

MapInfo::MapInfo(GameType gameType, MainPanel *parent): QObject(parent){
if (gameType == New){
QFile mapFile("maps/map.mp");
if (!mapFile.open(QIODevice::ReadOnly))

...

PlayPanel:

Код:
...

PlayPanel::PlayPanel(MapInfo *mi, QWidget *parent): QWidget(parent){
std::cout << "what is wrong?\n";
setMouseTracking(true);
posX = 0; posY = 0;
mapInfo = mi;
}

...

еще рисунок ошибки
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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