QT学习记录(二)

一、状态栏,铆接部件,核心部件

相关代码如下,代码写在如下代码后面

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();
});

五、总结

这一篇博客介绍了一些布局,资源文件的添加,以及对话框的相关知识,下一篇博客将会介绍控件相关的学习记录。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

血狼傲骨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值