QT02-------控件与对话框的使用

大耗子 2020年07月05日 128次浏览

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
createResourceFile
open in editor 编辑资源
openResourceFile
添加前缀 添加文件
prefix
使用 “ : + 前缀名 + 文件名 ”
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;

界面布局

  1. 选取 widget 进行布局 ,水平布局、垂直布局、栅格布局
  2. 默认窗口和控件之间 有9间隙,可以调整 layoutMargin
  3. 利用弹簧进行布局