Создание меню и панелей инструментов Си++ Qt
Primary tabs
отличный пример по данной теме находится здесь = http://zetcode.com/gui/qt4/menusandtoolb...
#include < Windows.h > #include < QtCore\QtCore > #include < QtGui\QtGui > #pragma comment(lib, "QtCore4.lib") #pragma comment(lib, "QtGui4.lib") /*сначала опишем класс главного окна который наследует функционал и свойства QMainWindow*/ class myMainWindow:public QMainWindow { public: myMainWindow (QWidget *parent = 0); // описываем конструктор //родитель по-умолчанию отсутствует }; // описываем конструктор снаружи класса myMainWindow::myMainWindow(QWidget *parent) : QMainWindow(parent) { /*создаём действие используя конструктор типа QAction ( const QString & text, QObject * parent ) */ QAction *quit2 = new QAction("&Quit", this); QMenu *file; file = menuBar()->addMenu("&File"); // указываем одно из действий для элемента меню File file->addAction(quit2); // по connect(quit2, SIGNAL(triggered()), qApp, SLOT(quit())); } /*функция ниже - это просто точка входа в проргамму - на Qt по идее она должна выглядеть стандратно - типа main() - так что данный пример не совсем корректен*/ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpcmdline, int ncmdshow) { QApplication app(ncmdshow, (char **)lpcmdline); myMainWindow *window = new myMainWindow(); window ->resize(376, 301); window->show(); return app.exec(); }
Если сравнивать предыдующий вызов connect() с сигнатурой, а именно:
----------------------------- bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection ) [static] ------------------------------
то можно заметить что мы использовали тип соединения по умолчанию - явно его не передавая
отправителем сигнала будет выступать объект типа "действие" quit (это просто название оно может быть любым)
тип порождаемого объектом сигнала за которым надо следить
- это triggered() - то есть некое действие произведённое пользователем над
указанным объектом.
qApp - это ни что иное как глобальный указатель на наше Qt-приложение
ПРИМЕЧАНИЕ: quit() - последний параметр connect в данном примере - не имеет никакого морфологического (в смысле названия) отношения к объекту quit (на самом деле объект quit можно было назвать например quit123435 - и всё бы работало)) )- а является слотом Qt приложения (см. ссылки ниже)
последний же параметр (слот) - это стандартный слот класса QCoreApplication
Ссылки по теме:
- Log in to post comments
- 5699 reads