Название: Ui + наследник QGraphicsView. Отправлено: Nikita68 от Сентябрь 27, 2014, 00:41 Всем, доброго времени суток)
Подскажите, пожалуйста. Я создаю ui. Там есть возможность, как я понимаю, пользоваться стандартными классами. Я хочу использовать наследник QGraphicsView. В нем я переопределю только метод resizeEvent(QGraphicsEvent *). Подскажите, пожалуйста, как мне решить эту проблему. Спасибо за внимание) Название: Re: Ui + наследник QGraphicsView. Отправлено: Bepec от Сентябрь 27, 2014, 00:49 А проблему то ты забыл описать :) Доброго времени суток.
Название: Re: Ui + наследник QGraphicsView. Отправлено: gil9red от Сентябрь 27, 2014, 00:56 Всем, доброго времени суток) Подскажите, пожалуйста. Я создаю ui. Там есть возможность, как я понимаю, пользоваться стандартными классами. Я хочу использовать наследник QGraphicsView. В нем я переопределю только метод resizeEvent(QGraphicsEvent *). Подскажите, пожалуйста, как мне решить эту проблему. Спасибо за внимание) В дизайнере тыкаете правой кнопкой мыши на QGraphicsView, и выбираете "Преобразовать в ...", далее в появившемся окне добавляете свой класс и жмете "Преобразовать" После этого вместо стандартного виджета, будет создаваться ваш. Название: Re: Ui + наследник QGraphicsView. Отправлено: Nikita68 от Сентябрь 27, 2014, 04:08 взял из примеров по Бланшету - HexSpinBox. Но тут загвоздка - пишет ошибки:
Что я сделал не так? ставил галку, что не глобально. Вот код ui: #ifndef UI_UIMAINWINDOW_H #define UI_UIMAINWINDOW_H #include <QtCore/QVariant> #include <QtGui/QAction> #include <QtGui/QApplication> #include <QtGui/QButtonGroup> #include <QtGui/QHeaderView> #include <QtGui/QMainWindow> #include <QtGui/QMenuBar> #include <QtGui/QWidget> #include "hexspinbox.h" QT_BEGIN_NAMESPACE class Ui_UiMainWindow { public: QWidget *centralwidget; HexSpinBox *spinBox; QMenuBar *menuB; void setupUi(QMainWindow *UiMainWindow) { if (UiMainWindow->objectName().isEmpty()) UiMainWindow->setObjectName(QString::fromUtf8("UiMainWindow")); UiMainWindow->resize(240, 243); UiMainWindow->setMinimumSize(QSize(0, 0)); UiMainWindow->setMaximumSize(QSize(16777215, 16777215)); UiMainWindow->setLayoutDirection(Qt::LeftToRight); centralwidget = new QWidget(UiMainWindow); centralwidget->setObjectName(QString::fromUtf8("centralwidget")); spinBox = new HexSpinBox(centralwidget); spinBox->setObjectName(QString::fromUtf8("spinBox")); spinBox->setGeometry(QRect(60, 80, 42, 22)); UiMainWindow->setCentralWidget(centralwidget); menuB = new QMenuBar(UiMainWindow); menuB->setObjectName(QString::fromUtf8("menuB")); menuB->setGeometry(QRect(0, 0, 240, 19)); UiMainWindow->setMenuBar(menuB); retranslateUi(UiMainWindow); QMetaObject::connectSlotsByName(UiMainWindow); } // setupUi void retranslateUi(QMainWindow *UiMainWindow) { UiMainWindow->setWindowTitle(QApplication::translate("UiMainWindow", "\320\234\320\276\320\264\320\265\320\273\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265 \320\221\320\241\320\241", 0, QApplication::UnicodeUTF8)); } // retranslateUi }; namespace Ui { class UiMainWindow: public Ui_UiMainWindow {}; } // namespace Ui QT_END_NAMESPACE #endif // UI_UIMAINWINDOW_H А вот ошибки: 05:04:49: Выполняется сборка проекта test... 05:04:49: Запускается: «C:\Qt\qtcreator-2.4.0\mingw\bin\mingw32-make.exe» [ 12%] Building CXX object CMakeFiles/test.dir/main.cpp.obj In file included from D:\c_program\cpp\hexspinbox\/MyMainWindow.h:4, from D:\c_program\cpp\hexspinbox\main.cpp:6: D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h:21:24: error: hexspinbox.h: No such file or directory In file included from D:\c_program\cpp\hexspinbox\/MyMainWindow.h:4, from D:\c_program\cpp\hexspinbox\main.cpp:6: D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h:29: error: ISO C++ forbids declaration of 'HexSpinBox' with no type D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h:29: error: expected ';' before '*' token D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h: In member function 'void Ui_UiMainWindow::setupUi(QMainWindow*)': D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h:42: error: 'spinBox' was not declared in this scope D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h:42: error: expected type-specifier before 'HexSpinBox' D:/c_program/cpp/hexspinbox/build/ui_UiMainWindow.h:42: error: expected ';' before 'HexSpinBox' mingw32-make.exe[2]: *** [CMakeFiles/test.dir/main.cpp.obj] Error 1 mingw32-make.exe[1]: *** [CMakeFiles/test.dir/all] Error 2 mingw32-make.exe: *** [all] Error 2 05:04:57: Процесс «C:\Qt\qtcreator-2.4.0\mingw\bin\mingw32-make.exe» завершился с кодом 2. Возникла ошибка при сборке проекта test (цель: Настольный компьютер) Во время выполнения сборки на этапе «Сборка» Название: Re: Ui + наследник QGraphicsView. Отправлено: Nikita68 от Сентябрь 27, 2014, 04:38 Ребят, помогло добавление файлов hexspinbox.cpp + hexspinbox.h в папку сборки.
Тему, наверное, можно закрывать. Спасибо за внимание и за полезные советы) Название: Re: Ui + наследник QGraphicsView. Отправлено: gil9red от Сентябрь 27, 2014, 09:04 Пожалуйста, для этого форум и создавался :)
|