| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Использование слотов в Qt 4.0.1 |
| Автор: Гость_bob 5.9.2005, 09:53 |
| В файле ui_<FormName>.h есть объявление стандартных слотов, а где я могу их перегрузить или сделать новый слот (нестандартный). В Qt 3.X был срр-модуль формы, а в Qt 4.0.1 я его не нахожу уж очень сильно все изменилось. Я пишу свою функцию и хочу чтобы она обрабатывалась например по щелчку на кнопке размещенной на форме. Где я должен реализовать функцию и прописать ее вызов для кнопки? |
| Автор: chaos 5.9.2005, 10:24 | ||
а че такое тебе решение не подходит
|
| Автор: Guest 5.9.2005, 10:37 |
| Да, но при изменении формы в дизайнере все внесенные вручную изменения пропадают. |
| Автор: chaos 5.9.2005, 10:51 | ||
сорри, не пользуюсьдизайнером (очень очень редко), так что с такими проблемами не сталкивался |
| Автор: Sergey B. 20.9.2005, 12:11 |
| Форму рисуй в дизайнере. скажем UiMainForm. Далее создаём myform.h и myform.cpp myform.h: #ifndef _MYFORM_H #define _MYFORM_H #include "ui_UIMainForm.h" #include <QMainWindow> class MyForm:public QMainWindow,private Ui::UIMainWindow { Q_OBJECT public: MyForm( ); public slots: void ShowOperators(); void ShowDrivers(); void ShowRaions(); void ShowStreets(); void ShowZakazs(); private: void createMenu(); void createToolBar(); void createStatusBar(); }; #endif myform.cpp: #include <QMenu> #include <QStatusBar> #include <QMenuBar> #include <QToolBar> #include "myform.h" MyForm::MyForm( ){ setupUi(this); setWindowState(Qt::WindowMaximized); createMenu(); createStatusBar(); createToolBar(); //И вот здесь пишем свои слоты... тгда хоть обрисуйся в дизайнере... твой файл myform никто не //трогает connect(optoolButton,SIGNAL(clicked()),this,SLOT(ShowOperators())); connect(dtoolButton,SIGNAL(clicked()),this,SLOT(ShowDrivers())); connect(rtoolButton,SIGNAL(clicked()),this,SLOT(ShowRaions())); connect(stoolButton,SIGNAL(clicked()),this,SLOT(ShowStreets())); connect(ztoolButton,SIGNAL(clicked()),this,SLOT(ShowZakazs())); } void MyForm::createMenu(){ QMenu *menu=MyForm::menuBar()->addMenu(tr("&File")); menu->addAction(tr("&Quit"),this,SLOT(close())); QMenu *spravs=MyForm::menuBar()->addMenu(tr("&Spravochniki")); spravs->addAction(tr("Operators"),this,SLOT(ShowOperators())); spravs->addAction(tr("Drivers"),this,SLOT(ShowDrivers())); spravs->addAction(tr("Raions"),this,SLOT(ShowRaions())); spravs->addAction(tr("Streets"),this,SLOT(ShowStreets())); spravs->addAction(tr("Zakazs"),this,SLOT(ShowZakazs())); } void MyForm::createToolBar(){ } void MyForm::createStatusBar(){ } |