Qt桌面应用开发 第四天(对话框 界面布局)

ops/2024/11/17 20:26:27/

目录

1.对话框

1.1模拟对话框

1.2非模拟对话框

1.3消息对话框

1.3.1询问对话框

1.3.2严重错误对话框

1.3.3信息提示对话框

1.3.4警告对话框

1.4其他对话框

1.4.1颜色对话框

1.4.2文件对话框

1.4.3字体对话框

1.5界面布局


1.对话框

1.1模拟对话框

会阻塞同一应用程序中其他窗口的输入。

创建流程:

  1. 利用QDialog类创建对话框对象
  2. 调用对象的exec()成员函数
//举例:模拟对话框
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->actionnew,&QAction::triggered,[=](){QDialog l(this);l.setWindowTitle("模拟对话框");l.resize(100,80);l.exec();    //会弹出模拟对话框});
}

运行效果:

1.2非模拟对话框

打开非模拟对话框时,可以操作其他窗口。

创建流程:

  1. 利用QDialog类创建对话框对象
  2. 调用对象的show()成员函数
    connect(ui->actionnew,&QAction::triggered,[=](){QDialog* l=new QDialog(this);l->setWindowTitle("非模拟对话框");l->resize(100,80);l->show();//关闭非模拟对话框时,将对话框对象释放l->setAttribute(Qt::WA_DeleteOnClose);});

运行效果:

在上述案例中,对话框创建在堆区,没有释放窗口对象,可以设置属性,在关闭非模拟对话框时,将对话框对象释放;若非模拟对话框创建在栈区,对话框会马上释放

  l->setAttribute(Qt::WA_DeleteOnClose);//55号属性

1.3消息对话框

Qt内置标准对话框:

QMessageBox用于显示消息提示,一般会使用的静态成员函数如下:

1.3.1询问对话框

        connect(ui->actionnew,&QAction::triggered,[=](){if(QMessageBox::Save==QMessageBox::question(this,"询问对话框","是否保存",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel)){qDebug()<<"选择保存";}else{qDebug()<<"选择取消";}});

运行效果:

1.3.2严重错误对话框
    connect(ui->actionnew,&QAction::triggered,[=](){QMessageBox::critical(this,"严重错误对话框","出错了");});

运行效果:

1.3.3信息提示对话框
    connect(ui->actionnew,&QAction::triggered,[=](){QMessageBox::information(this,"信息提示对话框","小贴士提醒您");});

运行效果:

1.3.4警告对话框
    connect(ui->actionnew,&QAction::triggered,[=](){QMessageBox::warning(this,"警告对话框","注意前方道路");});

运行效果:

1.4其他对话框

1.4.1颜色对话框

QColorDialog::getColor()创建颜色对话框。

    connect(ui->actionnew,&QAction::triggered,[=](){QColor color=QColorDialog::getColor();qDebug()<<color.red()<<color.green()<<color.blue();});

运行效果:

1.4.2文件对话框

QFileDialog::getOpenFileName创建文件对话框。

    connect(ui->actionnew,&QAction::triggered,[=](){//参数:父类窗口,窗口标题,默认的文件路径QString filePath=QFileDialog::getOpenFileName(this,"文件对话框","E:/a");qDebug()<<filePath;});

运行效果:

1.4.3字体对话框
    connect(ui->actionnew,&QAction::triggered,[=](){bool ok;QFont font=QFontDialog::getFont(&ok);qDebug()<<"字体"<<font.family()<<"字号"<<font.pointSize()<<"加粗"<<font.bold()<<"倾斜"<<font.italic()<<"ok"<<ok;});

运行效果:

1.5界面布局

水平布局/垂直布局:

水平弹簧控件/垂直弹簧控件:

页面widget的sizePolicy中的垂直策略fixed,会让窗口高度和控件高度贴合:

运行效果:


http://www.ppmy.cn/ops/134522.html

相关文章

UML概述、类图关系及连接线表示

一、什么是 UML 以下是官方的描述&#xff1a; UML&#xff08;Unified Modeling Language&#xff09;即统一建模语言&#xff0c;它是一种用于可视化、详述、构造和文档化软件密集系统的语言。UML 并不是一种编程语言&#xff0c;而是一种可视化的建模语言&#xff0c;主要用…

浅谈“通感一体”

文章目录 5G_Advanced的关键技术通感一体的介绍通感一体应用通感一体面临的挑战 5G_Advanced的关键技术 2024年6月18日16点30分&#xff0c;在上海举行的3GPP RAN第104次会议上&#xff0c;R18标准正式冻结&#xff0c;标志着5G技术的又一重要里程碑。值得注意的是&#xff0c…

spark性能优化调优指导性文件

1.让我们看一下前面的核心参数设置&#xff1a; num-executors10||20&#xff0c;executor-cores1||2&#xff0c;executor-memory10||20&#xff0c;driver-memory20&#xff0c;spark.default.parallelism64 假设我们的火花队列资源如下&#xff1a; 内存1T&#xff0c;内…

git配置用户信息

在 Git 中配置用户信息&#xff0c;主要是设置你的用户名和电子邮件地址&#xff0c;这些信息会被 Git 用来记录提交的作者信息。以下是配置用户信息的步骤&#xff1a; 打开命令行工具。 设置你的用户名&#xff1a; git config --global user.name "你的名字"例如…

npm list -g --depth=0(用来列出全局安装的所有 npm 软件包而不显示它们的依赖项)

您提供的命令 npm list -g --depth0 是在 Node Package Manager (npm) 的上下文中使用的&#xff0c;用来列出全局安装的所有 npm 软件包而不显示它们的依赖项。 这是它的运作方式&#xff1a; npm list -g --depth0-g: 指定列表应包括全局安装的软件包。--depth0: 限制树形结…

【智能化仪表设计】化工仪表及自动化全套课件

目录 第二章 压力测量仪表 第一节&#xff1a; 压力单位 第三章 流量测量仪表 第四节&#xff1a;涡街流量计 第五节&#xff1a;电磁流量计 第四章 物位测量仪表 第三节&#xff1a;电容式物位传感器 第四节&#xff1a;声波式物位仪表 三、预处理系统的设计原则和…

探索MoviePy:Python视频编辑的瑞士军刀

文章目录 &#x1f3ac; 探索MoviePy&#xff1a;Python视频编辑的瑞士军刀第一部分&#xff1a;背景介绍第二部分&#xff1a;MoviePy是什么&#xff1f;第三部分&#xff1a;如何安装MoviePy&#xff1f;第四部分&#xff1a;MoviePy的基本函数使用方法1. 视频剪辑2. 视频拼接…

pyflink datastream数据流ds经过一系列转换后转为table,t_env.from_data_stream(ds)

在 pyflink 处理数据流过程中&#xff0c;有时候需要将data_stream转为table,下面是正确的方式&#xff0c;即每一个算子(map&#xff0c;reduce, window)操作之后需要指定输出数据类型。 from pyflink.common.typeinfo import Types from pyflink.datastream import StreamEx…