QT中的工具栏和菜单栏
- QMainWindow
- 菜单栏创建演示:
- 工具栏创建演示:
- 状态栏创建演示:
- 铆接部件(浮动窗口)创建演示:
- 中心部件创建演示:
- 资源文件添加
- 模态和非模态对话框
- 消息对话框
- 颜色对话框
- 文件对话框
- 字体对话框
QMainWindow
菜单栏在为空的状态下,什么都不会显示
菜单栏创建演示:
代码语言:javascript复制 //菜单栏创建---菜单栏最多只能有一个
QMenuBar*b=menuBar();
//将菜单栏放入到窗口中---菜单栏在为空的状态下,什么都不会显示
setMenuBar(b);
//创建菜单
QMenu *fileMenu= b->addMenu("文件");
QMenu* editMenu=b->addMenu("编辑");
//创建菜单项目
fileMenu->addAction("新建");
//添加分隔符
fileMenu->addSeparator();
fileMenu->addAction("打开");
工具栏创建演示:
1.设置工具栏默认的停靠区域
2.设置可以停靠的区域,例如:只能停靠在左和右 3.设置工具栏是否可以浮动,即工具栏要么停靠在左边,要么停靠在右边,一撒手就立刻回去了 4.设置移动:如果传入一个false,则表示该工具栏无法拖拽移动
代码语言:javascript复制 //重置窗口大小
resize(600,400);
//菜单栏创建---菜单栏最多只能有一个
QMenuBar*b=menuBar();
//将菜单栏放入到窗口中---菜单栏在为空的状态下,什么都不会显示
setMenuBar(b);
//创建菜单
QMenu *fileMenu= b->addMenu("文件");
QMenu* editMenu=b->addMenu("编辑");
//创建菜单项目
QAction* FileAction=fileMenu->addAction("新建");
//添加分隔符
fileMenu->addSeparator();
QAction* OpenAction=fileMenu->addAction("打开");
//工具栏 可以有多个
QToolBar * toolBar=new QToolBar(this);
//可以设置工具栏的停靠区域
addToolBar(Qt::LeftToolBarArea,toolBar);
//后期设置,只能左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置浮动
toolBar->setFloatable(false);
//设置移动:总开关
toolBar->setMovable(false);
//工具栏中可以设置内容
toolBar->addAction(FileAction);
//添加分割线
toolBar->addSeparator();
toolBar->addAction(OpenAction);
//工具栏中添加控件
QPushButton* btn=new QPushButton("关闭程序",this);
toolBar->addWidget(btn);
状态栏创建演示:
代码语言:javascript复制 //状态栏 最多有一个
QStatusBar* stBar=statusBar();
//放置到窗口中
setStatusBar(stBar);
//放标签控件
QLabel* label=new QLabel("提示信息",this);
//放置在左侧
stBar->addWidget(label);
QLabel* label2=new QLabel("右侧提示信息",this);
//放置在右侧
stBar->addPermanentWidget(label2);
铆接部件(浮动窗口)创建演示:
放置区域的参数:
代码语言:javascript复制 //铆接部件(浮动窗口)可以有多个
QDockWidget* dockWidget=new QDockWidget("浮动",this);
//停靠在核心部件下部
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
//设置后期停靠区域,只能停靠在上面或者下面
dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
中心部件创建演示:
代码语言:javascript复制 //设置中心部件---只能有一个
QTextEdit* edit=new QTextEdit(this);
setCentralWidget(edit);
资源文件添加
步骤1: 找到当前项目所在文件夹,将对应的资源放入当前项目所在的文件夹
步骤2:
选择QRF:
点击Open in Editor来编辑资源文件
模态和非模态对话框
代码语言:javascript复制 //点击新建按钮,弹出一个对话框
connect(ui->newFile, &QAction::triggered,[=](){
//对话框 分类
//模态对话框(打开该对话框之后,不可以对其他窗口进行操作,相当于堵塞了代码)
//模态对话框创建---阻塞
QDialog dlg(this);
//重载模态对话框大小
dlg.resize(200,100);
dlg.exec();
qDebug()<<"模态对话框弹出了";
//非模态对话框(打开了该对话框之后,可以对其他窗口进行操作)
//QDialog dlg2(this); 这里放在匿名函数对象,生命周期只有一行,对话框一闪而过,建议在堆区创建
QDialog* dlg2=new QDialog(this);//重复点击关闭窗口,会重复再堆区创建对象,导致内存泄露
dlg2->resize(200,100);
dlg2->show();
//设置对话框属性,关闭对话框就释放当前对话框对象
dlg2->setAttribute(Qt::WA_DeleteOnClose);
qDebug()<<"非模态对话框弹出了";
消息对话框
QMessageBox中常用的静态成员函数:
消息对话框和错误对话框演示:
代码语言:javascript复制 //消息对话框
//错误对话框---弹出一个警告窗口
QMessageBox::critical(this,"警告","用户名错误");//父亲 标题 内容
//信息对话框
QMessageBox::information(this,"信息","请输入密码");
提问对话框演示:
提问对话框第四个参数:
代码语言:javascript复制 //提问对话框
QMessageBox::question(this,"提问","你叫什么?",
QMessageBox::Help|QMessageBox::Apply,QMessageBox::Apply);
//第四个参数:按键类型 第五个参数:设置默认激活的选项,默然关联回车按键
返回值就是第四个参数的类型:
代码语言:javascript复制 if(QMessageBox::Help==QMessageBox::question(this,"提问","你叫什么?",
QMessageBox::Help|QMessageBox::Apply,QMessageBox::Apply))
{
qDebug()<<"选择了帮助按键";
}
颜色对话框
代码语言:javascript复制 //颜色对话框
QColor color=QColorDialog::getColor(QColor(255,0,0));
qDebug()<<"r= "<<color.red()<<" g="<<color.green()<< " b="<<color.blue();
文件对话框
代码语言:javascript复制//文件对话框---打开c盘文件夹
//父亲 标题 默认打开路径 过滤文件格式 返回QString: 选取的路径
QString s=QFileDialog::getOpenFileName(this,"打开文件","c:","(*.txt)");
字体对话框
代码语言:javascript复制//字体对话框
bool flag;
QFont font=QFontDialog::getFont(&flag,QFont("华文彩云",36));
//去掉中文显示有双引号
qDebug()<<"字体: "<<font.family().toUtf8().data()<<" 字号:"<<font.pointSize()<<
" 是否加粗:"<<font.bold();