用户:唯一的早晨查看:2 回复:1 评论:2 创建时间:2020-02-15T11:24:08
MainWindow.h文件:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void MySlot();
};
#endif // MAINWINDOW_H MainWindow.cpp文件:
#include "MainWindow.h"
#include <QMenuBar> //菜单栏
#include <QMenu> //菜单
#include <QAction> //菜单项
#include <QDebug> //输出
#include <QToolBar> // 工具栏
#include <QPushButton> //按钮
#include <QStatusBar> //状态栏
#include <QLabel> //标签
#include <QTextEdit> //文本编辑区
#include <QDockWidget> //浮动窗口
#include <QDialog> //对话框
#include <QMessageBox> //标准对话框
#include <QFileDialog> //文件对话框
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//菜单栏
QMenuBar *mBar = menuBar();
//添加菜单
QMenu *pFile = mBar->addMenu("对话框");
//添加菜单项,动作
//模态对话框
QAction *p1 = pFile->addAction("模态对话框");
connect(p1,&QAction::triggered,
[=]()
{
QDialog dlg;
dlg.exec();
qDebug() << "模态对话框打开时,无法操作其他";
}
);
//非模态对话框
pFile->addSeparator(); //添加分割线
QAction *p2 = pFile->addAction("非模态对话框");
connect(p2,&QAction::triggered,
[=]()
{
QDialog *dlg = new QDialog(this);
dlg->setAttribute(Qt::WA_DeleteOnClose); //防止内存泄漏,此函数的作用为关闭对话框时自动释放
dlg->show();
qDebug() << "非模态对话框打开时,可以操作其他";
}
);
//关于对话框
pFile->addSeparator(); //添加分割线
QAction *p3 = pFile->addAction("关于对话框");
connect(p3,&QAction::triggered,
[=]()
{
QMessageBox::about(this,"about","充值成功"); //about(父类,标题名,对话框内容);
}
);
//问题对话框
pFile->addSeparator(); //添加分割线
QAction *p4 = pFile->addAction("问题对话框");
connect(p4,&QAction::triggered,
[=]()
{
QMessageBox::question(this,"question","是否充值",QMessageBox::Ok,QMessageBox::Cancel); //question(父类,标题名,对话框内容);
}
);
//文件对话框
pFile->addSeparator(); //添加分割线
QAction *p5 = pFile->addAction("文件对话框");
connect(p5,&QAction::triggered,
[=]()
{
QString path = QFileDialog::getOpenFileName(
this,
"open",
"../",
"souce(*.cpp *.h);;"
"Text(*.txt);;"
"all(*.*)" );
qDebug() << path;
}
);
//工具栏 菜单项的快捷方式
QToolBar *toolBar = addToolBar("toolBar");
//工具栏添加快捷键
toolBar->addAction(p1);
//添加小控件
QPushButton *b = new QPushButton(this);
b->setText("新建");
toolBar->addWidget(b);
connect(b,&QPushButton::clicked,this,&MainWindow::MySlot);
//状态栏
QStatusBar *sBar = statusBar();
QLabel *MyLabel = new QLabel(this);
MyLabel->setText("第一种添加方式 ");
sBar->addWidget(MyLabel);
// addwidget从左往右添加
sBar->addWidget(new QLabel("addwidget从左往右添加",this));
sBar->addPermanentWidget(new QLabel("addPermanentWidget从右往左添加",this));
//文本编辑区
QTextEdit *MyQTE = new QTextEdit(this);
setCentralWidget(MyQTE);
//浮动窗口
QDockWidget *dock = new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea,dock);
//给浮动窗口添加文本编辑区
QTextEdit *MyDockQTE = new QTextEdit(this);
dock->setWidget(MyDockQTE);
}
void MainWindow::MySlot(){
qDebug() << "新建成功";
}
MainWindow::~MainWindow()
{
}