Я начинающий на C++, и я начал изучать, как использовать компоненты QT через код в MVS IDE. Я все еще не знаю, было ли это наилучшим вариантом, но поскольку я программист на Java, я сделал путь, который я создал с Java (компоненты Swing). Итак, моя проблема заключается в том, как связать два класса моего кода, так как в одном я сделал оконный фрейм, а в другом я сделал свой бар меню?Как добавить панель меню в рамку окна? [QT с C++]
В Java я хотел бы сделать что-то вроде:
JFrame frame = new JFrame();
JMenu menu = new JMenu();
frame.add(menu);
Во всяком случае, это мой код:
#include "Header.h"
class MainWindow{
private:
QWidget *widget;
public:
void buildWindow(QApplication& app){
widget = app.desktop();
QMainWindow *main_window = new QMainWindow();
QWidget *mainWid = new QWidget(main_window);
MyMenuBar myMenuBar(mainWid);
main_window->setWindowState(mainWid->windowState() | Qt::WindowMaximized);
main_window->setWindowTitle("QT Trainning");
main_window->show();
}
};
class MyMenuBar:QMainWindow {
public:
MyMenuBar(QWidget* mainWid){
QAction *quit = new QAction("&Quit", this);
QMenuBar *menu = new QMenuBar(mainWid);
QMenu *file;
menu->addMenu(file);
file = menuBar()->addMenu("&File");
file->addAction(quit);
connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow frame;
frame.buildWindow(app);
return app.exec();
}
I судимым, чтобы создать экземпляр MenuBar внутри класс окна, но wans't так полезно и, честно говоря, большинство материалов, которые я нашел для работы с QT-интерфейсом, они полагают, что вы используете QT GUI ... Любые советы о том, как решить проблему или что я должен делать, чтобы практиковать C++?
Заранее спасибо
Прежде всего, извините за задержку ответить, Wanst, имея время в те дни, чтобы изучить C++. во всяком случае, ответ был потрясающим, работает как шарм. Теперь я понимаю, что «родительский» - главный указатель приложения QT, и для каждого компонента, который я хотел бы создать, мне нужно определить его внутри основного фрейма или виджета приложения, оттуда уступить и перейти к его класс для обработки. Большое спасибо. ps: исправьте меня, если я понял неправильно –