**
初学Qt 代码笔记:
** 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)
{
resize(640,480);
//菜单栏
QMenuBar *mBar = menuBar();//QMenuBar * menuBar()const
setMenuBar(mBar);//设置菜单栏
//添加菜单
QMenu *pFile = mBar->addMenu("文件");
//添加动作
QAction *pNew = pFile->addAction("新建");
connect(pNew,&QAction::triggered,
[=]()
{
qDebug()<<"新建被按下";
}
);
pFile->addSeparator();//给动作添加分割线
QAction *pOpen = pFile->addAction("打开");
pFile->addSeparator();
QAction *pSave = pFile->addAction("保存");
//工具栏,菜单项的快捷方式。
QToolBar *toolBar = addToolBar("toolBar");
//工具栏添加快捷键。
toolBar->addAction(pNew);
QPushButton *b1 = new QPushButton(this);
b1->setText("<_>");
//添加小控件
toolBar->addWidget(b1);
connect(b1,&QPushButton::clicked,
[=]()
{
b1->setText("123");
}
);
//状态栏
QStatusBar *StatusBar = statusBar();
QLabel *label = new QLabel(this);
label->setText("Normal text file");
StatusBar->addWidget(label);
StatusBar->addPermanentWidget(label);//从右往左。
//核心控件
QTextEdit *textEdit = new QTextEdit(this);
setCentralWidget(textEdit);
//浮动窗口
QDockWidget *dockWidget = new QDockWidget(this);
addDockWidget(Qt::RightDockWidgetArea,dockWidget);
QTextEdit *textEdit1 = new QTextEdit(this);
dockWidget->setWidget(textEdit1);
QMenu *pDialog = mBar->addMenu("对话框");
QAction *p1 = pDialog->addAction("模态对话框");//为什么不设置返回值也可以????
//设置返回值作为发射信号者。
connect(p1,&QAction::triggered,
[=]()
{
dlg.exec();//等待事件发生!!!
//然后执行...
qDebug()<<"123";
}
);
QAction *p2 = pDialog->addAction("非模态对话框");
connect(p2,&QAction::triggered,
[=]()
{
dlg.show();//利用成员变量显示对话框!!!!!!
//然后执行...
qDebug()<<"123";
}
);
QAction *p4 = pDialog->addAction("问题对话框");
connect(p4,&QAction::triggered,
[=] ()
{
int ret = QMessageBox::question(this,
"question","Are you OK?",
QMessageBox::Ok,
QMessageBox::Cancel);
//指定按钮。
switch(ret)
{
case QMessageBox::Ok:
qDebug()<<"ok";
break;
case QMessageBox::Cancel:
qDebug()<<"bad";
break;
default:
break;
}
}
);
QMenu *pHelp = mBar->addMenu("帮助");
QAction *p3 = pHelp->addAction("关于");
connect(p3,&QAction::triggered,
[=]()
{
QMessageBox::about(this,"帮助","爱我就抱抱我!");
});
QAction *p5 = pDialog->addAction("打开文件对话框");
connect(p5,&QAction::triggered,
[=]()
{
QString path = QFileDialog::getOpenFileName(this,
"open","../",
"Images (*.png *.xpm *.jpg);;"
"Text(*.txt);;XML(*.xml);;all(*.*)");
qDebug()<<path;
}
);
}
MainWindow::~MainWindow()
{
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwidow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QDialog>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
QDialog dlg;
~MainWindow();
};
#endif // MAINWINDOW_H