在编写QT程序时,有时需要获取主窗口程序指针和主窗口指针,方便控制界面,编写相应的逻辑,而QT则提供了类似的功能。
1.获取应用程序qApp 宏就可以获取 QApplication 实例,只要使用了 Q_OBJECT 宏,或者继承 QObject 对象,就可以使用该宏。必须引入这个头!
#include
2.获取主窗口指针
QT程序一切信息周转的核心是主窗口,如果能够获取主窗口指针,就能进一步的控制界面。
QMainWindow* getMainWindow()
{
foreach (QWidget *w, qApp->topLevelWidgets())
if (QMainWindow* mainWin = qobject_cast(w))
return mainWin;
return nullptr;
}
3.菜单动作
添加菜单,动作和响应函数
QMainWindow *pQMainWindow = getMainWindow();
QMenuBar *pQMenuBar = pQMainWindow->menuBar();
QMenu *subMenu = pQMenuBar->addMenu(QString::fromLocal8Bit("云渲染"));
QAction *action_new_file = new QAction(this);
action_new_file->setText(QString(QString::fromLocal8Bit("new file")));
subMenu->addAction(action_new_file);
//信号与槽的链接方法
QObject::connect(action_new_file, &QAction::triggered, this, &QtClassLibraryUI::menu_clicked);
4.内嵌浏览器