Название: QGraphisView + QWidget Отправлено: shadow от Май 20, 2013, 12:02 Здравствуйте! Сильно не пинайте я новичок в Qt да и в С++.
Имеется программка для вывода графических объектов, добавил боковую панель для переключателей, теперь я хочу сделать, чтобы при выборе radioButton1 или radioButton2 появлялись разные groupBox (groupBox 2 или groupBox3) для этого я просто хочу скрывать их groupBox2,3->hide();, но при нажатии на 1 или 2 программа вешается >:(. Может быть так вообще нельзя делать? Помогите пожалуйтся разобраться.... Код: DiagramWindow::DiagramWindow() Название: Re: QGraphisView + QWidget Отправлено: kambala от Май 20, 2013, 16:16 можно запустить в дебаге и посмотреть что там происходит. также можно выложить готовый проект, а не огрызок, чтобы можно было запустить самому.
Название: Re: QGraphisView + QWidget Отправлено: shadow от Май 21, 2013, 09:39 Отправляю весь проект...
Название: Re: QGraphisView + QWidget Отправлено: kambala от Май 21, 2013, 11:10 обычно указателям на объект выделяют память прежде, чем к ним обращаться. твои групбоксы — не исключение.
ты в createToolBox() насоздавал кучу локальных переменных и думаешь, что они волшебным образом перекочуют в поля класса? P.S. QMAKE_CXX = gcc — жестоко. Название: Re: QGraphisView + QWidget Отправлено: shadow от Май 21, 2013, 12:05 Спасибо за оперативный ответ!
Но я же написал что, сильно не пинайте я новичок в Qt да и в С++. Цитировать обычно указателям на объект выделяют память прежде, чем к ним обращаться. твои групбоксы — не исключение. можно ткнуть носом, а то я чето недоганяю.Цитировать ты в createToolBox() насоздавал кучу локальных переменных и думаешь, что они волшебным образом перекочуют в поля класса? то есть надо все переменные типа QGroupBox, QRadioButton, QGridLayout, QVBoxLayout перенести в diagramwindow.h? Цитировать P.S. QMAKE_CXX = gcc — жестоко. а какая разница если g++?Название: Re: QGraphisView + QWidget Отправлено: Vladimir от Май 21, 2013, 15:28 Спасибо за оперативный ответ! Но я же написал что, сильно не пинайте я новичок в Qt да и в С++. Цитировать ты в createToolBox() насоздавал кучу локальных переменных и думаешь, что они волшебным образом перекочуют в поля класса? то есть надо все переменные типа QGroupBox, QRadioButton, QGridLayout, QVBoxLayout перенести в diagramwindow.h? Да. в .h файле объявляешь указатель на элемент QGroupBox, QRadioButton, QGridLayout, QVBoxLayout.., а в .cpp выделяешь для него память. добавь в .pro файл QT += qt и подключи #include <QtGui> в diagramwindow.cpp. а то половина элементов не видит. Название: Re: QGraphisView + QWidget Отправлено: shadow от Май 21, 2013, 15:44 Цитировать добавь в .pro файл QT += qt и подключи #include <QtGui> в diagramwindow.cpp. а то половина элементов не видит. Я использую Qt 5.0.1 QT += widgets хватает.....Цитировать а. в .h файле объявляешь указатель на элемент QGroupBox, QRadioButton, QGridLayout, QVBoxLayout.., а в .cpp выделяешь для него память блин я же так и делаю??? что не так???Название: Re: QGraphisView + QWidget Отправлено: Vladimir от Май 21, 2013, 15:54 Цитировать добавь в .pro файл QT += qt и подключи #include <QtGui> в diagramwindow.cpp. а то половина элементов не видит. Я использую Qt 5.0.1 QT += widgets хватает.....Цитировать а. в .h файле объявляешь указатель на элемент QGroupBox, QRadioButton, QGridLayout, QVBoxLayout.., а в .cpp выделяешь для него память блин я же так и делаю??? что не так???Ну у вас к примеру и в .h, и .cpp QRadioButton *radioButton3, radioButton4, radioButton5..; зачем дублировать? объявлять только в .h, если планируется глобальное использование! а так получается объявили глобально, а память выделили локально в функии совсем другому объекту, но с тем же именем, а обращаетесь к глобальному объекту под который естественно память не была веделена. просто внимательно пересмотрите код) Название: Re: QGraphisView + QWidget Отправлено: shadow от Май 21, 2013, 16:03 Спасибо большое!!! Дейтсвительно ткнул носом....
Вот это затупил.... Название: Re: QGraphisView + QWidget Отправлено: kambala от Май 21, 2013, 16:10 Цитировать P.S. QMAKE_CXX = gcc — жестоко. а какая разница если g++?в заголовочный файл надо выносить не всё подряд, а лишь те объекты, которые тебе реально понадобятся по ходу дела. Название: Re: QGraphisView + QWidget Отправлено: shadow от Ноябрь 22, 2013, 12:26 Подскажите еще...
Если я добавлю например 100 обектов и уменьшу окно, как сделать чтобы обекты влезли в новое окно? Нужно перерисовывать обекты с учетом нового размере окна или маштабировать? Как правильно? Я тут попробывал так: Код: bool DiagramWindow::eventFilter(QObject *, QEvent *event) |