Создание меню и панелей инструментов Си++ Qt

отличный пример по данной теме находится здесь = 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

Ссылки по теме:

  1. quit() qt slot
  2. qApp Qt что это
  3. сигнал Qt = signal triggered