QT学习之路——添加资源、对话框、界面布局

今天学习了QT,利用拖拽方法进行UI界面设计【善用QT Assistance 查询用法】


资源文件添加到项目中:将图片文件拷贝到项目位置下(右键mainwindow.cpp显示包含的目录)

右键项目->添加新文件->QT->QT Resourse File->给资源文件起名为res

自动生成res.grc->open in editor 编辑资源->添加前缀、添加文件

使用方法: “:+前缀名+文件名”


对话框

分类:模态对话框(不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口进行操作)

创建方式

模态:QDialog dlg(this);   dlg.exec()

非模态: 防止一闪而过,创建到堆区

        QDialog * dlg2 = new QDialog(this);//创建在堆区才能一直存活(否则一闪而过)但可能有内存泄漏
        dlg2->show();
        dlg2->setAttribute(Qt::WA_DeleteOnClose);//关闭时立即释放,防止内存泄漏

标准对话框

颜色对话框 QColorDialog

选择文件或目录QFileDialog

选择字体QFontDialog

选择用户输入一个值并将其返回QInputDialog

模态对话框,显示信息,询问问题QMessageBox

为打印机提供纸张相关选项QPageSetupDialog

打印机配置 QPrintDialog

打印预览 QPrintPreviewDialog

显示操作过程 QProgressDialog

 

消息对话框

QMessageBox静态成员函数 创建对话框

错误、信息、提问、警告

参数1 父亲   参数2 标题   参数3 显示内容    参数4 按键类型  参数5 默认关联回车按键

返回值 也是standarbutton类型,利用返回值判断用户的输入

颜色对话框   QColorDialog::getColor

文件对话框   QFileDialog::getOpenFileName(父亲,标题,默认路径,过滤文件)

字体对话框   QFontDialog::getFont

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
#include <QDebug>
#include <QMessageBox>
#include <QMessageBox>
#include <QColor>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //添加QT资源, ": + 前缀名 + 文件名"
    ui->actionnew1->setIcon(QIcon(":/timg.jpg"));
    //点击新建按钮,弹出一个对话框
    connect(ui->actionnew1,&QAction::triggered,[=](){
        //对话框分类
        //模态对话框(不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口进行操作)
        //模态创建:有阻塞功能
//        QDialog dlg(this);
//        dlg.exec();
//        dlg.resize(200,100);
//        qDebug()<<"模态对话框弹出了";

        //非模态创建
//        QDialog * dlg2 = new QDialog(this);//创建在堆区才能一直存活(否则一闪而过)但可能有内存泄漏
//        dlg2->resize(400,200);
//        dlg2->show();
//        dlg2->setAttribute(Qt::WA_DeleteOnClose);//关闭时立即释放,防止内存泄漏
//        qDebug()<<"非模态对话框弹出了";

        //消息对话框
//        QMessageBox::critical(this,"critical","错误");//错误对话框
//        QMessageBox::information(this,"info","消息");//消息对话框
//       if(QMessageBox::Save == QMessageBox::question(this,"ques","提问", QMessageBox::Save|QMessageBox::Cancel))//提问对话框
//       {
//           qDebug() << "选择的是保存";
//       }
//       else
//       {
//           qDebug() << "选择的是取消";file
//       }
//         QMessageBox::warning(this,"warning","警告");//警告对话框

        //其他标准对话框
        //颜色对话框
//        QColor color = QColorDialog::getColor(QColor(255,0,0));
//        qDebug()<< "r = "QColor color = QColorDialog::getColor(QColor(255,0,0));
//        qDebug()<< "r = " << color.red() << " g = " << color.green() << " b = " << color.blue(); << color.red() << " g = " << color.green() << " b = " << color.blue();
//        //文件对话框  参数1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件类型  返回值 选择的路径
//        QString str = QFileDialog::getOpenFileName(this,"打开桌面","/home/luxinyue/桌面","(*.txt)");
//        qDebug() << str;

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

}

MainWindow::~MainWindow()
{
    delete ui;
}

界面布局——实现一个登陆窗口

利用布局方式:给窗口进行美化

选取widget 进行布局,水平、垂直、栅格 给用户名、密码、登陆、退出进行布局

默认窗口和控件之间有9间隙,选中窗口——layoutLeftMargin——修改间隙

用弹簧进行布局

垂直策略、水平策略

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值