QT 对话框 仿文本编辑器

        对话框通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互

一、消息对话框(QMessageBox)

1、QMessageBox类成员函数实现

1)实例化 QMessageBox类 对象

2)设置对象属性

3)显示对话框

QMessageBox::QMessageBox(                    //构造函数函数名
                                            QMessageBox::Icon icon,                 //图标
                                            const QString &title,                   //窗口标题
                                            const QString &text,                     //窗口文本内容
                                            QMessageBox::StandardButtons buttons = NoButton,//按键
                                            QWidget *parent = nullptr)                //父组件

参数1:是一个该类提供的内部枚举类型

Constant                            Value           Description

QMessageBox::NoIcon         0              不提供图标.

QMessageBox::Question      4              提供一个问号的图标 
                      
QMessageBox::Information   1              提供一个 i 符号的图标
                 
QMessageBox::Warning        2              提供一个感叹号的图标表示警告         

QMessageBox::Critical          3              提供一个叉号图标表示错误

 参数4:是给对话框上提供的用于用户操作的按钮,也是一个枚举类型,如果需要提供多个按钮,中间使用位或隔开

Constant                                    Value                                     Description

QMessageBox::Ok                0x00000400     An "OK" button defined with the AcceptRole

QMessageBox::Open            0x00002000    An "Open" button defined with the AcceptRole

QMessageBox::Save            0x00000800    A "Save" button defined with the AcceptRole

QMessageBox::Cancel         0x00400000    A "Cancel" button defined with the RejectRole

QMessageBox::Close           0x00200000    A "Close" button defined with the RejectRole

......

2、静态函数实现

        系统提供4个静态成员函数:information、question、warning、critical

[static] QMessageBox::StandardButton//返回的是一个按钮

        QMessageBox::information( //函数名

                                                QWidget *parent, //父组件

                                                const QString &title, //对话框标题

                                                const QString &text, //对话框文本内容

                                                QMessageBox::StandardButtons buttons = Ok, //提供的按钮                                                 QMessageBox::StandardButton defaultButton = NoButton)

二、颜色对话框(QColorDialog)

1、所需头文件 QColorDialog 颜色对话框类   QColor 颜色类

2、一般不会对这个对话框进行太多设置,所以用静态成员函数实现

[static] QColor //返回一个颜色类对象

        QColorDialog::getColor( //函数名

                const QColor &initial = Qt::white, //打开对话框后的初始颜色

                QWidget *parent = nullptr, //父组件

                const QString &title = QString()) //对话框标题

三、字体对话框(QFrotDialog)

1、所需头文件 QFrotDialog 字体对话框类   QFrot字体类

2、一般不会对这个对话框进行太多设置,所以用静态成员函数实现

[static] QFont //返回值一个字体类的对象

QFontDialog::getFont( //函数名

        bool *ok, //用于地址传递,判断用户是否选中了某个字体

        const QFont &initial, //初始字体,对话框中的第一个字体,如果用户点击了取消,则将该字体作为函数返回值

        QWidget *parent = nullptr, //父组件

        const QString &title = QString()) //对话框标题

四、文件对话框(QFileDialog)

1、所需头文件 QFileDialog 文件对话框类   

2、一般不会对这个对话框进行太多设置,所以用静态成员函数实现

[static] QString //返回用户选中的文件路径 

        QFileDialog::getSaveFileName( //函数名

                QWidget *parent = nullptr, //父组件

                const QString &caption = QString(), //对话框标题

                const QString &dir = QString(), //遍历文件系统时的起始路径

                const QString &filter = QString()) //过滤器

五、QT中的io操作

1、依赖的类是QFile

2、使用QFile类实例化对象,用该对象对文件进行读写操作

3、可以使用构造函数打开文件,也可以调用无参构造,使用open函数打开文件

4、文件读写函数,read、readLine、readAll 、write

5、关闭文件close

仿文本编辑器

ui

 槽函数

#include "widget.h"
#include "ui_widget.h"
#include <QColor>//颜色类
#include <QColorDialog>//颜色对话框
#include <QMessageBox>//对话框
#include <QFontDialog>//字体对话框
#include <QFont>//字体类
#include <QFileDialog>//文件对话框
#include <QFile>//文件类
#include <QDebug>//信息调试类Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}//颜色
void Widget::on_pushButton_4_clicked()
{QColor c = QColorDialog::getColor(QColor(255,0,0),//初始颜色this,//父组件"颜色");//对话框标题//对选择的颜色进行判断if(c.isValid()){ui->textEdit->setTextColor(c);}else{QMessageBox::information(this,"提示","未选择颜色");}
}//字体
void Widget::on_pushButton_3_clicked()
{bool ok = false; // 定义变量用于接收操作QFont f = QFontDialog::getFont(&ok,//接收用户操作QFont("隶书",10,10),//初始字体this,//父组件"选择字体"//对话框标题);//判断用户操作if(ok){//选中了某个字体//ui->textEdit->setFont(f);//设置所有文本ui->textEdit->setCurrentFont(f);//设置选中文本ui->textEdit->setFontItalic(true);//斜体}else{QMessageBox::information(this,"提示","未选择字体");}}//保存
void Widget::on_pushButton_2_clicked()
{QString fileName = QFileDialog::getSaveFileName(this,//父组件"保存",//对话框标题"./",//起始目录"所有文件(*.*);;图片(*.png *.jpg *.gif);;文本(*.txt);;原文件(*.cpp)");//过滤器//输出选择的文件qDebug()<<fileName;//QT中的文件操作QFile file(fileName);//使用得到的文件路径创建员工文件对象//以写的形式打开文件if(!file.open(QFile::WriteOnly|QFile::Text|QFile::Truncate)){              //    写         以文本的形式        清空//打开失败QMessageBox::warning(this,"警告","创建失败");return ;}//打开成功//获取ui界面上文本编辑器上的类容QString msg = ui->textEdit->toPlainText();//将信息写入文件file.write(msg.toLocal8Bit());//QSring -> 字节数组//关闭文件file.close();
}//打开
void Widget::on_pushButton_clicked()
{QString fileName = QFileDialog::getOpenFileName(this,"打开","./","所有文件(*.*);;图片(*.png *.jpg *.gif);;文本(*.txt);;原文件(*.cpp)");QFile file(fileName);//读的形式打开if(!file.open(QFile::ReadOnly|QFile::Text)){//打开失败QMessageBox::warning(this,"警告","打开失败");return ;}//获取信息QString msg = file.readAll();//转换格式msg.toStdString();//显示文本ui->textEdit->setText(msg);//关闭文件file.close();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/421363.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用API接口可以实现哪些功能(天猫API接口|京东API接口)

在电商领域&#xff0c;API接口可以实现多种功能&#xff0c;起到连接内外部系统及优化电商业务流程等多种作用&#xff0c;从而来提高电商企业的运营效率。 具体来看&#xff0c;API接口可以用来&#xff1a; 商品管理&#xff1a; API接口能够用来获取商品详情等&#xff0…

顶级PCVR头显具备什么配置?清晰度如何?

头戴式显示器是VR体验中用户与虚拟现实环境交互不可或缺的一部分。高端的头显通常可为使用者提供具有超高分辨率的高清画面&#xff0c;因此当你拥有一部高端的VR头显&#xff0c;虚拟世界将如真实世界一样呈现在你眼前。 说到顶级头显我们就不得不提到Varjo&#xff0c;Varjo是…

DBeaver连接数据库报连接错误:Public Key Retrieval is not allowed

问题描述 使用DBeaver软件连接mysql数据库的时候&#xff0c;有如下提示信息&#xff1a; 解决办法 点击驱动属性->找到allowPublicKeyRetrieval这项&#xff0c;把值设置为TRUE,再点击连接测试 可以成功连接到mysql数据库&#xff0c;问题解决~

杰发科技Bootloader(3)—— 基于7801的APP切到Boot

为了方便在APP中跳转到Boot重新进行升级&#xff0c;有两种办法&#xff0c;7840同样可以使用。 1. 调用reset接口进行复位&#xff0c;复位后会先进Boot&#xff0c;再自动跳转到App。 NVIC_SystemReset(); 2. 直接使用跳转指令&#xff0c;参考Boot跳转到App代码&#xff0…

一种简易CAN数据分析器的实现(一)【工程创建+CAN波特率计算工具】

程序实现详见《一种简易CAN数据分析器的实现&#xff08;二&#xff09;【程序实现】》 微信公众号关注&#xff1a;掌芯元器&#xff0c;免费为大家提供嵌入式相关的技术咨询&#xff01;&#xff01;&#xff01; 目录 一、功能需求及实现 1、功能设计及实现 2、软硬件需求…

GitLab CI Runner安装

参考文章&#xff1a;[花了两天&#xff0c;搞了Gitlab-Runner CI/CD实现自动化部署&#xff0c;可比Jenkins香太多啦&#xff01;&#xff01;&#xff01;&#xff01;_gitlab的cicd取代jenkens-CSDN博客] Gitlab的CI需要安装CI专用的GitLab Runner&#xff0c;否则跑不起来…

优秀的安防视频监控平台应该具备怎样的视频编解码能力?

随着安防技术的飞速发展&#xff0c;监控平台作为保障公共安全、维护社会秩序的重要工具&#xff0c;其性能与效率日益成为行业关注的焦点。其中&#xff0c;监控平台的视频编码能力在视频监控系统中扮演着至关重要的角色&#xff0c;视频编码技术作为监控系统的核心组成部分&a…

基于JAVA+SpringBoot+Vue的中药实验管理系统

基于JAVASpringBootVue的中药实验管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈…

探究文本完全对齐技术:从理论到代码

文本完全对齐算法解析与实现 引言 在编辑文档、设计书籍版面或网页时&#xff0c;通常需要将文本进行格式化对齐&#xff0c;以提升视觉吸引力和易读性。 一种广泛采用的对齐技术是所谓的“完全对齐”&#xff0c;这意味着文本的每一行的起始和结束位置都要对齐整齐。 虽然许多…

湖仓一体-Paimon篇-简介

什么是Paimon&#xff1f; 2021年末&#xff0c;Flink官方提出打造一个全新的存储 Flink Table Store&#xff0c;一个 Flink 完全内置的存储。 为了让 Flink Table Store 能够有更大的发展&#xff0c;Flink PMC经过讨论决定将其捐赠Apache进行独立孵化。 2023 年 3 月 12 日…

《信息系统安全》课程实验指导

第1关&#xff1a;实验一&#xff1a;古典密码算法---代换技术 任务描述 本关任务&#xff1a;了解古典密码体制技术中的代换技术&#xff0c;并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母&#xff0c;也就是说字母表为26个小写字母。 相关知识 为了完…

声音之旅:2024四大必备音乐剪辑软件盘点!

音乐剪辑&#xff0c;作为一种艺术形式&#xff0c;让每个人都能够成为自己音乐故事的导演。今天&#xff0c;我们将探索几款优秀的音乐剪辑工具&#xff0c;它们分别是福昕音频剪辑、Audio Trimmer、Ocenaudio和闪电音频剪辑。 福昕音频剪辑 直达链接&#xff1a;www.pdf365…

Vue路由:Vue router

目录 路由的基本概念 1. 路由 2. 单页应用SPA 3.前端路由的实现方式 3.1Hash模式 3.2History模式 Vue router 4 1.概述 2.安装使用 3.基础用法 3.1路由匹配规则声明 3.2动态路由匹配 3.3路由命名 3.4路由重定向 3.5路由嵌套 3.6命名视图 3.6声明式导航&编程…

【数模】ARIMA时间序列预测模型(python代码)

期待今晚的莎莎和大头&#x1f60e;&#xff01; &#x1f3c6;&#x1f3c6;&#x1f3c6; 愿巴黎登顶&#x1f49c; 正文开始 主要是跟着实战&#xff1a;时间序列模型(五)&#xff1a;时间序列案例_实现销售额预测 &#x1f49c;本人是我们组的编程手&#xff0c;本博客只…

Origin2024中绘制多因子分组柱状图,直观展示不同组别内的数据变化!

当我们需要对比多组平行数据时&#xff0c;采用Origin多因子分组柱状图&#xff0c;不仅可以直接的对比多组数据&#xff0c;同时还能够直观展示各个指标因子的数据变化及趋势 操作步骤&#xff1a; 1、先打开Origin2024软件&#xff0c;然后在Book1中输入如下示例数据&#…

移动训练馆:青少年体能提升的全新选择—轻空间

青少年的体能发展与综合素质提升正成为家长和学校的关注重点。随着学校和社会对体育锻炼要求的提升&#xff0c;如何为青少年提供便捷、高效的训练环境&#xff0c;成为各方关注的焦点。在这一背景下&#xff0c;移动训练馆应运而生&#xff0c;以其便捷建造、灵活移动、无需报…

基于vue框架的城市网约车管理系统v34td(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,司机,订单评价,完成订单,司机接单,打车订单 开题报告内容 基于Vue框架的城市网约车管理系统开题报告 一、研究背景与意义 1.1 研究背景 随着城市化进程的加速和互联网技术的飞速发展&#xff0c;网约车服务作为一种新兴的出行方…

从基础到进阶:利用EasyCVR安防视频汇聚平台实现高效视频监控系统的五步走

随着科技的飞速发展&#xff0c;视频监控技术在社会安全、企业管理、智慧城市构建等领域扮演着越来越重要的角色。一个高效智能的视频监控管理系统不仅能够提升监控效率&#xff0c;还能在预防犯罪、事故预警、数据分析等方面发挥巨大作用。 一、需求分析 在设计视频监控管理…

vue项目 - uniapp分享配置 - 不同环境下的分享按钮梳理

效果 详情 uniapp 分享 app环境 手册 https://uniapp.dcloud.net.cn/api/plugins/share.html * wx 微信好友 [uni.share图文线上图文字 || 纯图本地base64图] * pyq 朋友圈 [uni.share图文线上图文字&#xff0c; || 纯图本地base64图] * qq QQ [uni.share图文线上图…

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格&#xff0c;发现项目中无法生效&#xff0c;定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14&#xff0c;然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 el…