一、状态栏,铆接部件,核心部件
相关代码如下,代码写在如下代码后面
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
//菜单栏创建
QMenuBar *bar=menuBar();
//将菜单栏放入窗口中
setMenuBar(bar);
//创建菜单
QMenu *fileMenu=bar->addMenu("文件");
QMenu *editMenu=bar->addMenu("编辑");
//创建菜单项目
fileMenu->addAction("新建");
//添加分隔符
fileMenu->addSeparator();
fileMenu->addAction("打开");
QToolBar *toolBar=new QToolBar(this);
//设置在左边
addToolBar(Qt::LeftToolBarArea,toolBar);
//后期设置只能在左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置不可浮动操作
toolBar->setFloatable(false);
//设置移动
toolBar->setMovable(false);
toolBar->addSeparator();
toolBar->addAction("采用");
//工具栏添加控件
QPushButton *btn=new QPushButton("打开",this);
toolBar->addWidget(btn);
//状态栏
QStatusBar *stBar=statusBar();
//设置到窗口中
setStatusBar(stBar);
//放标签控件
QLabel *label=new QLabel("提示信息");
stBar->addWidget(label);
QLabel *label2=new QLabel("右侧提示信息");
stBar->addPermanentWidget(label2);
//铆接部件,可以有多个
QDockWidget *dockWidget=new QDockWidget("浮动",this);
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
//设置核心部件,只能有一个
QTextEdit *edit=new QTextEdit(this);
setCentralWidget(edit);
也可以用ui界面拖拽进行设置相关部件。
上面代码运行结果如下:
二、资源文件的添加
①、选择添加新文件
②、添加QT Resource File
③、设置好资源文件的名字和路径
④、右键资源文件,选择Open in editor进入界面
⑤、选择添加前缀
作为区分
⑥、添加文件
点击添加文件,就会加入图片,就可以使用了
我的图片在这
//设置图标
fileMenu->setIcon(QIcon(":/D:/QQ/gezi.jpg"));
QMenu *editMenu=bar->addMenu("编辑");
//设置图标
editMenu->setIcon(QIcon(":/D:/QQ/gezi.jpg"));
最终显示的结果为:
三、对话框
先设置好ui界面,拖拽设置即可,文件下有新建
①、模态对话框:
不可对其他窗口进行操作
模态对话框例子:
connect(ui->actionnew,&QAction::triggered,[=](){
//创建对话框
QDialog dlg(this);
//创建模态对话框
dlg.exec(); //阻塞
dlg.resize(200,100);
qDebug()<<"模态对话框弹出";
});
②、非模态对话框:
可以对其他窗口进行操作
非模态对话框例子:
connect(ui->actionnew,&QAction::triggered,[=](){
QDialog *dlg2=new QDialog(this);
dlg2->show();
dlg2->resize(200,200);
qDebug()<<"非模态对话框弹出";
});
但是不会释放,如果频繁进行操作,会导致内存泄露
添加如下代码。
dlg2->setAttribute(Qt::WA_DeleteOnClose);
③、消息对话框
错误对话框
connect(ui->actionnew,&QAction::triggered,[=](){
QMessageBox::critical(this,"critical","错误");
});
信息对话框
connect(ui->actionnew,&QAction::triggered,[=](){
QMessageBox::information(this,"info","注意信息");
});
问题对话框
connect(ui->actionnew,&QAction::triggered,[=](){
//第四个操作可以选择yes或no(按键的类型),第五个参数默认对应回车的操作。
QMessageBox::question(this,"ques","你是神吗?",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel);
});
可以进行修改,捕获到选项,采用方法如下代码:
connect(ui->actionnew,&QAction::triggered,[=](){
//第四个操作可以选择yes或no(按键的类型),第五个参数默认对应回车的操作。
if(QMessageBox::Save==QMessageBox::question(this,"ques","你是神吗?",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
{
qDebug()<<"选择的是保存";
}
else {
qDebug()<<"选择的是取消";
}
});
警告对话框
connect(ui->actionnew,&QAction::triggered,[=](){
//第四个操作可以选择yes或no(按键的类型),第五个参数默认对应回车的操作
QMessageBox::warning(this,"warning","警告");
});
③、颜色对话框
connect(ui->actionnew,&QAction::triggered,[=](){
QColor color=QColorDialog::getColor(QColor(255,0,0));
qDebug()<<"r="<<color.red()<<"g="<<color.green()<<"b="<<color.blue()<<endl;
});
④、文件对话框
connect(ui->actionnew,&QAction::triggered,[=](){
//"(*.txt)"代表只看txt文件,文件夹不会过滤
//参数一是父亲,参数二是标题,参数三是默认的打开的路径(不设置的话会默认打开项目所在的文件),参数四是过滤的文件,返回值是QString(路径)
QString str=QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\Administrator\\Desktop\\qtlearn\\newwindow","(*.txt)");
qDebug()<<str;
});
⑤、字体对话框
connect(ui->actionnew,&QAction::triggered,[=](){
bool flag;
QFont font=QFontDialog::getFont(&flag,QFont("华文彩云",36));
qDebug()<<"字体:"<<font.family().toUtf8().data()<<"字号"<<font.pointSize()<<"是否加粗"<<font.bold();
});
五、总结
这一篇博客介绍了一些布局,资源文件的添加,以及对话框的相关知识,下一篇博客将会介绍控件相关的学习记录。