Поскольку мы не знаем, какой язык захочет использовать пользователь после запуска приложения, мы теперь не будем загружать файлы перевода в функции
Давайте рассмотрим подкласс
01 MainWindow::MainWindow()
02 {
03 journalView = new JournalView;
04 setCentralWidget(journalView);
05 qApp->installTranslator(&appTranslator);
06 qApp->installTranslator(&qtTranslator);
07 qmPath = qApp->applicationDirPath() + "/translations";
08 createActions();
09 createMenus();
10 retranslateUi();
11 }
В конструкторе мы устанавливает центральный виджет
• переменная
• переменная
• переменная
В конце мы вызываем закрытые функции
01 void MainWindow::createActions()
02 {
03 newAction = new QAction(this);
04 connect(newAction, SIGNAL(triggered()), this, SLOT(newFile()));
05 …
06 aboutQtAction = new QAction(this);
07 connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
08 }
Функция
01 void MainWindow::createMenus()
02 {
03 fileMenu = new QMenu(this);
04 fileMenu->addAction(newAction);
05 fileMenu->addAction(openAction);
06 fileMenu->addAction(saveAction);
07 fileMenu->addAction(exitAction);
08 …
09 createLanguageMenu();
10 helpMenu = new QMenu(this);
11 helpMenu->addAction(aboutAction);
12 helpMenu->addAction(aboutQtAction);
13 menuBar()->addMenu(fileMenu);
14 menuBar()->addMenu(editMenu);
15 menuBar()->addMenu(reportsMenu);
16 menuBar()->addMenu(languageMenu);
17 menuBar()->addMenu(helpMenu);
18 }
Функция
В середине функции мы вызываем
01 void MainWindow::retranslateUi()
02 {
03 newAction->setText(tr("&New"));
04 newAction->setShortcut(tr("Ctrl+N"));
05 newAction->setStatusTip(tr("Create a new journal"));
06 …
07 aboutQtAction->setText(tr("About &Qt"));
08 aboutQtAction->setStatusTip(tr("Show the Qt library's About box"));
09 fileMenu->setTitle(tr("&File"));
10 editMenu->setTitle(tr("&Edit"));