我们建立工程的时候需要建立一个MainWindow类的窗口,因为在QWidget里面没有直接可以使用的菜单栏和工具栏。下面我们直接开始讲解吧。
QMenuBar *mBar = menuBar();
这句话就是创建了一个菜单栏,下面就开始为菜单栏添加菜单了
QMenu *pFile = mBar->addMenu("文件");
QMenu *pSerial = mBar->addMenu("串口");
QMenu *pView = mBar->addMenu("视图");
这个就是在菜单栏的上面添加了文件、串口、视图这几个菜单。当然了我们也可以在菜单下再创建菜单就是类似于我们常用的那些个软件那个样子。
再就是为菜单添加动作,就是在文件菜单下设置新建和打开两个动作。
QAction *pNew = pFile->addAction("新建");
QAction *pOpen = pFile->addAction("打开");
connect(pNew,&QAction::triggered,
[=]()
{
qDebug()<<"新建被按下";
}
);
pFile->addSeparator();
前两行就是将在文件菜单下创建的两个动作,后面的connect就是连接信号和槽的,当新建被按下的时候就会发送这个信号,然后打印“新建被按下”,当然我们可以在这里执行别的什么的都可以,pFile->addSeparator();这句话的意思就是添加一个分隔符的意思看起来比较好看一点点。
QToolBar *toolBar = addToolBar("toolBar");
这句话就是创建一个工具栏,我们可以直接将上面定义的动作直接添加进来,
toolBar->addAction(pNew);
运用这句话就是直接将上面新建的pNew动作直接添加到toolBar中,当然了我们也可以直接新建控件将控件直接添加到ToolBar中。
QPushButton *button = new QPushButton(this);
button->setText("^_^");
toolBar->addWidget(button);
connect(button,&QPushButton::clicked,
[=]()
{
button->setText("123");
}
);
下面就是完整的代码:
QMenuBar *mBar = menuBar();
QMenu *pFile = mBar->addMenu("文件");
QMenu *pSerial = mBar->addMenu("串口");
QMenu *pView = mBar->addMenu("视图");
QAction *pNew = pFile->addAction("新建");
QAction *pOpen = pFile->addAction("打开");
connect(pNew,&QAction::triggered,
[=]()
{
qDebug()<<"新建被按下";
}
);
pFile->addSeparator();
QToolBar *toolBar = addToolBar("toolBar");
toolBar->addAction(pNew);
QPushButton *button = new QPushButton(this);
button->setText("^_^");
toolBar->addWidget(button);
connect(button,&QPushButton::clicked,
[=]()
{
button->setText("123");
}
);