QT QMainWindow主窗口,添加工具栏,工具栏中有3项,分别为“打开”,“保存”和“退出”,文字显示在下发,并且实现点击“打开”按钮弹出对话框的功能
时间: 2023-11-24 08:07:00 浏览: 95
可以通过以下代码实现:
```cpp
#include <QMainWindow>
#include <QToolBar>
#include <QAction>
#include <QFileDialog>
class MainWindow : public QMainWindow {
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建工具栏
QToolBar *toolbar = new QToolBar(this);
toolbar->setMovable(false); // 工具栏不能拖动
addToolBar(toolbar);
// 创建打开动作
QAction *openAction = new QAction(QIcon(":/icons/open.png"), tr("&打开"), this);
openAction->setShortcut(QKeySequence::Open);
toolbar->addAction(openAction);
// 创建保存动作
QAction *saveAction = new QAction(QIcon(":/icons/save.png"), tr("&保存"), this);
saveAction->setShortcut(QKeySequence::Save);
toolbar->addAction(saveAction);
// 创建退出动作
QAction *exitAction = new QAction(QIcon(":/icons/exit.png"), tr("&退出"), this);
exitAction->setShortcut(QKeySequence::Quit);
toolbar->addAction(exitAction);
// 连接槽函数
connect(openAction, &QAction::triggered, this, &MainWindow::openFile);
connect(saveAction, &QAction::triggered, this, &MainWindow::saveFile);
connect(exitAction, &QAction::triggered, this, &MainWindow::close);
}
private slots:
void openFile() {
QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"), "", tr("文本文件 (*.txt)"));
if (!fileName.isEmpty()) {
// TODO: 打开文件
}
}
void saveFile() {
QString fileName = QFileDialog::getSaveFileName(this, tr("保存文件"), "", tr("文本文件 (*.txt)"));
if (!fileName.isEmpty()) {
// TODO: 保存文件
}
}
};
```
其中,`QToolBar` 用于创建工具栏,`QAction` 用于创建工具栏中的动作,`QFileDialog` 用于打开和保存文件对话框。每个动作都需要设置图标、快捷键和槽函数,当动作被触发时会调用相应的槽函数。在槽函数中可以实现打开和保存文件的功能。
阅读全文