QMainWindow
菜单栏
菜单栏最多有一个
//菜单栏创建
QMenuBar * bar = menuBar();
//将菜单栏放入到窗口中
setMenuBar(bar);
//创建菜单
QMenu * fileMenu = bar->addMenu("文件");
//创建菜单项
QAction * newAction = fileMenu->addAction("新建");
//添加分割线
fileMenu->addSeparator();
工具栏
工具栏可以有多个
//新建工具栏
QToolBar * toolBar = new QToolBar(this);
// 添加并设置位置
addToolBar(Qt::LeftToolBarArea,toolBar);
//后期设置 只允许左右停靠
toolBar->setAllowedAreas( Qt::LeftToolBarArea | Qt::RightToolBarArea );
//设置浮动
toolBar->setFloatable(false);
//设置移动 (总开关)
toolBar->setMovable(false);
//工具栏中可以设置内容(可以是菜单里面的项)
toolBar->addAction(newAction);
//添加分割线
toolBar->addSeparator();
//工具栏中添加控件
QPushButton * btn = new QPushButton("aa" , this);
toolBar->addWidget(btn);
状态栏
状态栏 最多一个
// 创建状态栏
QStatusBar * stBar = statusBar();
//设置到窗口中
setStatusBar(stBar);
//放标签控件,在左侧
QLabel * label = new QLabel("提示信息",this);
stBar->addWidget(label);
//放标签控件,在右侧
QLabel * label2 = new QLabel("右侧提示信息",this);
stBar->addPermanentWidget(label2);
铆接部件
铆接部件 浮动窗口 可以多个
//创建铆接部件
QDockWidget * dockWidget = new QDockWidget("浮动",this);
// 设置在中心块的下面
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
//设置后期停靠区域,只允许上下
dockWidget->setAllowedAreas( Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea );
设置核心部件 只能一个
设置中心部件 只能一个
QTextEdit * edit = new QTextEdit(this);
//设置中心部件
setCentralWidget(edit);
资源文件的设置
将图片文件 拷贝到项目位置下
右键项目->添加新文件 –> Qt - > Qt recourse File - >给资源文件起名
res 生成 res.qrc
open in editor 编辑资源
添加前缀 添加文件
使用 “ : + 前缀名 + 文件名 ”
ui->actionNew->setIcon(QIcon(":/Image/Luffy.png"));
对话框
模态对话框
不可以对其他窗口进行操作 阻塞
使用QDialog::exec()实现应用程序级别的模态对话框
使用QDialog::open()实现窗口级别的模态对话框
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec();
非模态对话框
可以对其他窗口进行操作,防止一闪而过 创建到堆区。
使用QDialog::show()实现非模态对话框。
QDialog * dlg2 = new QDialog (this);
dlg2->resize(200,100);
dlg2->show();
dlg2->setAttribute(Qt::WA_Del
标准对话框
所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。
Qt 的内置对话框大致分为以下几类:
- QColorDialog:选择颜色;
- QFileDialog:选择文件或者目录;
- QFontDialog:选择字体;
- QInputDialog:允许用户输入一个值,并将其值返回;
- QMessageBox:模态对话框,用于显示信息、询问问题等;
- QPageSetupDialog:为打印机提供纸张相关的选项;
- QPrintDialog:打印机配置;
- QPrintPreviewDialog:打印预览;
- QProgressDialog:显示操作过程。
demo
//提问对话框
//参数1 父亲 参数2 标题 参数3 提示内容 参数4 按键类型 参数5 默认关联回车按键
if (QMessageBox::Save == QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
{
qDebug() << "选择的是保存";
}
//文件对话框 参数 1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件格式
//返回值是 选取的路径
QString str = QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\zhangtao\\Desktop","(*.txt)");
qDebug() << str;
界面布局
- 选取 widget 进行布局 ,水平布局、垂直布局、栅格布局
- 默认窗口和控件之间 有9间隙,可以调整 layoutMargin
- 利用弹簧进行布局