Qt_day02

每一个不曾起舞的日子,都是对生命的辜负 


目录

1、QMainWindow

1.1 菜单栏  只能有一个

1.2 工具栏  可以有多个

1.3 状态栏  只能有一个

1.4 铆接部件 可以有多个

1.5 核心部件  只能有一个

2、资源文件添加

2.1 将资源文件放入到项目下

2.2 添加小图标

3、 对话框创建

3.1 分类:模态对话框 和非模态对话框

3.2 标准对话框 QMessageBox

3.3 其他常用标准对话框


1、QMainWindow

1.1 菜单栏  只能有一个

1.1.1 QMenuBar* bar =  menuBar(); 创建一个菜单栏

1.1.2 setMenuBar(bar) ; 设置到窗口中

1.1.3 QMenu* menu = bar->addMenu(“文件”); 添加菜单

1.1.4 QAction * newAction =  menu->addAction(“新建”);  添加菜单项

1.1.5 fileMenu->addSeparator(); 添加分割线

    //1、菜单栏  最多只能有一个
    QMenuBar *bar = menuBar();
    //把栏放入窗口中
    setMenuBar(bar);

    //创建菜单
    QMenu *fileMenu = bar->addMenu("文件");
    QMenu *editMenu = bar->addMenu("编辑");

    //创建菜单项
    QAction *newAction = fileMenu->addAction("新建");

    //添加分割线
    fileMenu->addSeparator();

    QAction *openAction = fileMenu->addAction("打开");


1.2 工具栏  可以有多个

1.2.1 QToolBar* toolbar = new QToolBar(); 创建一个工具栏

1.2.2 addToolBar( 默认停靠范围 Qt::LeftToolBarArea  ,toolbar)  添加到窗口中

1.2.3 设置 只允许左右停靠 setAllowedAreas

1.2.4 设置浮动 setFloatable

1.2.5 设置移动 setMovable

    //2、工具栏 可以有多个
    QToolBar *toolBar = new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar);

    //设置只允许左右停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

    //设置浮动
    toolBar->setFloatable(false);

    //工具栏中放入小部件
    toolBar->addAction(newAction);

    //添加分割线
    toolBar->addSeparator();
    toolBar->addAction(openAction);


1.3 状态栏  只能有一个

1.3.1 QStatusBar * stBar = statusBar(); 创建一个状态

1.3.2 setStatusBar(stBar);  设置到窗口中

1.3.3 stBar->addWidget(label1); 左侧信息添加

1.3.4 stBar->addPermanentWidget(label2); 右侧信息添加

    //3、状态栏 只能有一个
    QStatusBar * stBar = statusBar();
    setStatusBar(stBar);

    QLabel *label1 = new QLabel("左侧提示信息",this);
    stBar->addWidget(label1);

    QLabel *label2 = new QLabel("右侧提示信息",this);
    stBar->addPermanentWidget(label2);

     


1.4 铆接部件 可以有多个

1.4.1 QDockWidget * dock = new QDockWidget(aaa,this); 创建一个铆接部件

1.4.2 addDockWidget(Qt::BottomDockWidgetArea,dock);  添加到窗口中

1.4.3 dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); 

设置后期停靠范围

    //4、铆接部件(浮动窗口)  可以有多个
    QDockWidget *dock = new QDockWidget("aaa",this);
    addDockWidget(Qt::TopDockWidgetArea,dock);

    //只允许左右停靠
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);


1.5 核心部件  只能有一个

1.5.1 QTextEdit *edit = new QTextEdit(this); 创建一个铆接部件

1.5.2 setCentralWidget(edit); 设置到窗口中

    //5、核心部件   只能有一个
    QTextEdit *edit = new QTextEdit(this);
    setCentralWidget(edit);


#include "mainwindow.h"
#include "QMenuBar"
#include "QToolBar"
#include "QLabel"
#include "QStatusBar"
#include "QDockWidget"
#include "QTextEdit"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(600,400);
    //1、菜单栏  最多只能有一个
    QMenuBar *bar = menuBar();
    //把栏放入窗口中
    setMenuBar(bar);

    //创建菜单
    QMenu *fileMenu = bar->addMenu("文件");
    QMenu *editMenu = bar->addMenu("编辑");

    //创建菜单项
    QAction *newAction = fileMenu->addAction("新建");

    //添加分割线
    fileMenu->addSeparator();

    QAction *openAction = fileMenu->addAction("打开");

    //2、工具栏 可以有多个
    QToolBar *toolBar = new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar);

    //设置只允许左右停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

    //设置浮动
    toolBar->setFloatable(false);

    //工具栏中放入小部件
    toolBar->addAction(newAction);

    //添加分割线
    toolBar->addSeparator();
    toolBar->addAction(openAction);

    //3、状态栏 只能有一个
    QStatusBar * stBar = statusBar();
    setStatusBar(stBar);

    QLabel *label1 = new QLabel("左侧提示信息",this);
    stBar->addWidget(label1);

    QLabel *label2 = new QLabel("右侧提示信息",this);
    stBar->addPermanentWidget(label2);


    //4、铆接部件(浮动窗口)  可以有多个
    QDockWidget *dock = new QDockWidget("aaa",this);
    addDockWidget(Qt::TopDockWidgetArea,dock);

    //只允许左右停靠
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

    //5、核心部件   只能有一个
    QTextEdit *edit = new QTextEdit(this);
    setCentralWidget(edit);

}
MainWindow::~MainWindow()
{

}

2、资源文件添加

2.1 将资源文件放入到项目下

2.1.1 右键项目->添加新文件  -> Qt ->Qt Recourse File

2.1.2 给资源文件起名  res  生成  res.qrc

2.1.3 用编辑的方式打开 res.qrc

2.1.4 添加前置  -  添加文件

2.1.5 使用 “ :  + 前缀名 + 文件名 ”;

2.2 添加小图标

//给新建添加小图标
ui->actionNew->setIcon(QIcon("D:/桌面/新建文件夹/8ECF4E22A2964905BE78122FC25E9701.jpg"));

//资源文件添加 语法:":+前缀名+文件名称"
ui->actionNew->setIcon(QIcon(":tp/新建文件夹/8ECF4E22A2964905BE78122FC25E9701.jpg"));

ui->actionOpen->setIcon(QIcon(":tp/新建文件夹/51AB8D1D202C95231C9879D872980EC8.jpg"));

3、 对话框创建

3.1 分类:模态对话框 和非模态对话框

3.1.1 模态 不可以对其他窗口进行操作

3.1.2 非模态 可以对其他窗口进行操作

3.1.3 模态对话框创建

  • 3.1.3.1 QDialog dlg(this); //创建一个对话框
  • 3.1.3.2 dlg.exec(); //阻塞
//模态对话框创建
QDialog dlg(this);
dlg.resize(400,200);
dlg.exec();//阻塞

3.1.4 非模态对话框创建

  • 3.1.4.1 QDialog * dlg2 = new QDialog(this);
  • 3.1.4.2 dlg2->show();
  • 3.1.4.3  dlg2->setAttribute(Qt::WA_DeleteOnClose); //设置属性

        

 //非模态对话框创建
 QDialog *dlg2 = new QDialog(this);
 dlg2->resize(400,200);
 dlg2->show();
 //设置  55号属性 点x后释放
 dlg2->setAttribute(Qt::WA_DeleteOnClose);


3.2 标准对话框 QMessageBox

3.2.1 错误提示对话框   QMessageBox::critical(this,"错误","critical");

3.2.2 信息提示对话框   QMessageBox::information(this,"信息.","info");

3.2.3 询问提示对话框   QMessageBox::question(this,"询间","question");

 //询问提示对话框
 //参数1父窗口 参数2标题 参数3提示信息 参数4按键类型 参数5默认关联回车按键
 QMessageBox::question(this, "询问" , "question",
 QMessageBox::Save | QMessageBox::Cancel,QMessageBox::Cancel);


 if(QMessageBox::Save == QMessageBox::question(this, "询问" , "question",
    QMessageBox::Save | QMessageBox::Cancel,QMessageBox::Cancel)){
         qDebug() << "点击的是保存";

 }else{
         qDebug() << "点击的是取消";
 }

3.2.4 警告提示对话框 QMessageBox::warning(this,"警告","warning");

//警告提示对话框
QMessageBox::warning(this,"警告","warning");


3.3 其他常用标准对话框

3.3.1 颜色对话框 QColor color = QColorDialog::getColor(Qt::red);

//颜色对话框
QColor color = QColorDialog::getColor(Qt::red);
//可以获取任何颜色分量
qDebug() << color.red() << color.green() << color.blue() ;

3.3.2 文件对话框 QString filename = QFileDialog::getOpenFileName(this,"打开文件","D:\\桌面\\","(*.doc)");

QString filename = QFileDialog::getOpenFileName(
this,"打开文件","D:\\桌面\\","(*.doc)");
qDebug() << filename;

3.3.3 字体对话框

//字体对话框
bool flag;
QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));
qDebug() << "字体:"<< font.family().toUtf8().data() << "字号:" << font.pointSize()
<< "是否加粗:"<< font.bold() << "是否倾斜:" <<font.italic();

day02  over!!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜回.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值