在Qt中如何简单设计一个文件和图像浏览器

文本浏览器

        设计一个文本浏览器程序,可以打开、显示 txt、html等文件

 1.在Qt Designer中设计一个菜单其中包含打开和退出选项:

2. 在 QMainWindow 构造函数中把 textBrower 设为主窗口的中心部件,这样整个窗口就成了包含 textBrower 的单文档窗口了。

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->setCentralWidget(ui->textBrowser);
}

 3.在打开菜单响应操作中选择文件,读取文件,并将文件输出到 textBrower 部件中:

void MainWindow::on_actionopen_triggered()
{QString fileName=QFileDialog::getOpenFileName(this,tr("open Files"),"",tr("Files(* .txt *.cpp *.h *.html * .htm)"));QFile myFile(fileName);if(!myFile.open (QIODevice::ReadOnly | QIODevice::Text))return;QTextStream in(&myFile);QString m_Text=in.readAll();if (fileName .endsWith ("htm")||fileName.endsWith("html")){ui->textBrowser->setHtml(m_Text);}elseui->textBrowser->setPlainText(m_Text);
}

 4.编译运行一下,可以看到很少的代码,实现了很实用的功能。这就是 Qt 设计语言的魅力。


图像浏览器

1.第一步和上节一样,在Form中,用Graphics View来替换textBrower。

2.在头文件中添加QGraphicsScene对象:

QGraphicsScene* scene;

3.在构造函数中,为 graphicsView 设置场景,并作为主窗口中心部件:

scene = new QGraphicsScene();
ui->graphicsView->setScene(scene);
ui->graphicsView->show();
this->setCentralWidget(ui->graphicsView);
showMaximized();

 4.修改“打开”响应菜单,添加以下代码,在 Graphics View 中显示图像:

void MainWindow::on_actionopen_triggered()
{QString fileName=QFileDialog::getOpenFileName(this,tr("open Image"),"",tr("Image riles(* .png * .jpg x .bmp)"));QPixmap myImage,myImage2;myImage.load(fileName);myImage2=myImage.scaled(ui->graphicsView->width(),ui->graphicsView->height(),Qt::KeepAspectRatio,Qt::FastTransformation);scene->clear();scene->addPixmap(myImage2);
}

5.编译运行,打开图片:


感谢各位的阅读!! 

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

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

相关文章

Samtec应用分享 | 汽车应用中的视觉系统

【前言】 视觉系统在未来的汽车设计中扮演着关键的角色。 在过去,一直是由驾驶员掌握和应对道路上的危险,但现代车辆在保障驾驶安全方面发挥着前所未有的作用。 视觉系统,无论是可见光摄像头还是先进的探测系统,如激光雷达&…

解读科技智慧公厕改变生活的革命性创新之路

公共厕所,作为城市基础设施的一部分,一直以来都备受人们诟病。脏乱差、设施老旧、管理混乱,成为公共厕所长期存在的问题。然而,随着科技的不断进步,智慧公厕应运而生,为解决公厕难题,智慧公厕源…

CentOS 7开机启动过程,引导和服务,密码的修改

开机启动过程: 引导过程:1.开机自检(BIOS)->2.MBR引导->GRUB菜单->加载内核kernel->systemd进程初始化 程序:执行特定任务的一串代码,静态,存在硬盘中。 进程:运行中的程序叫进程&#xff0…

分类损失函数与评估指标

目录 1 评估指标 1.1 准确率 1.2 精确率 1.3 召回率 1.4 F1 score 1.5 ROC曲线 1.6 AUC 1.7 PRC曲线的优势 2 损失函数 1. 负对数似然损失 2. 交叉熵损失 3. 指数损失 3 分类问题为什么用交叉熵损失不用 MSE 损失 1 评估指标 混淆矩阵 TP(True Positive) ---- 正…

AUTOCAD输出或打印PDF文件时,如何将图形居中且布满图纸?

AUTOCAD输出或打印PDF文件时,如何将图形居中且布满图纸? 如下图所示,我们打开一份DWG格式的图纸文件,然后点击上方的“打印“图标, 如下图所示, 打印机/绘图仪这里选择“DWG To PDF“; 图纸尺寸:这里以普通的A4纸为例进行说明; 打印比例选择“布满图纸“; 打印偏移…

【微信小程序之分包】

微信小程序之分包 什么是分包分包的好处分包前的结构图分包后的结构图分包的加载规则分包的体积限制使用分包打包原则引用原则独立分包独立分包的配置方法独立分包的引用原则分包预下载配置分包的预下载分包预下载限制 什么是分包 分包指的是把一个完整小程序项目,…

公园高速公路景区校园IP网络广播音柱SIP音柱

公园高速公路景区校园IP网络广播音柱SIP音柱 适用于学校、车站、教堂、工厂、仓库、公园停车场及露天市场高速公路等场所播放录制语音文件或背景音乐节目,专业一体化音箱设计,高强度防水设计,符合IP54防护等认证,数字化产品&…

酷开系统丨酷开科技打造P9系列智能投影,让智能化更进一步

近些年,随着科技的进步,家用投影仪已经成为家庭娱乐中不可或缺的一部分。尤其对年轻人来说,他们更喜欢在巨幕上看电影、玩游戏或听歌唱歌,投影仪在巨幕上的光影效果确实能带来更好的沉浸感体验,但这也是需要强大的系统…

论文略读:SWE-bench: Can Language Models Resolve Real-world Github Issues?

iclr 2024 oral reviewer评分 5668 现有的语言模型(LMs)的基准测试已经饱和,无法捕捉到最先进的语言模型能做什么和不能做什么的前沿。 ——>要具有挑战性的基准测试论文引入了SWE-bench 在现实软件工程环境中评估语言模型的基准测试 ​​…

word文件的创建时间和修改时间可以更改吗?答案是肯定的 文件属性修改的方法

一,引言 在日常生活和工作中,我们经常需要处理各种Word文件。有时,由于某些原因,我们可能需要更改Word文件的创建时间和修改时间。虽然这听起来可能有些复杂,但实际上,通过一些简单的方法和工具&#xff0…

数据库语言实战(三)

删除操作 本篇文章重点在于SQL中的各种删除操作 题目一 删除表中的学号不全是数字的那些错误数据,学号应该是数字组成,不能够包含字母空格等非数字字符。方法之一:用substr函数,例如Substr(sid,1,1)返回学号的第一位&#xff0…

java版数字藏品深色UI仿鲸探数藏盲盒合成短视频卡牌模式支持高并发

Java版数字藏品深色UI仿鲸探数藏盲盒合成短视频卡牌模式支持高并发,是一种结合了Java技术、深色用户界面(UI)设计、数字藏品概念、盲盒合成玩法以及短视频卡牌模式的综合性应用。该模式旨在为用户提供一种新颖、有趣的数字藏品体验&#xff0…

电脑怎么设置静态ip地址

在互联网连接中,IP地址扮演着至关重要的角色。它不仅是设备在网络世界中的唯一标识,还决定了设备如何与其他计算机通信。静态IP地址是一种固定不变的IP配置方式,与动态IP地址相比,它更加稳定,适用于需要长期、稳定网络…

Mysql的事务隔离级别以及事务的四大特性。

MySQL 的事务隔离级别是数据库管理系统中的一个重要概念,它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别,分别是:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)…

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

环境 开发板: 【正点原子】 的 RK3568 开发板 ATK-DLRK3568 u-boot 版本:来自 【正点原子】 的 RK3568 开发板 Linux SDK,单独复制出来一份,手动编译 编译环境:VMware 虚拟机 ubuntu 20.04 问题描述 RK3568 默认 …

啤酒厂要开发一个SCADA系统,我是这样考虑的

需求分析 在啤酒生产过程中,技术与自动化的应用对确保产品质量的稳定、提高生产效率以及保障生产安全起着至关重要的作用。因此,构建一套全面、高效的SCADA(监督控制与数据采集)系统总体规划框架对于啤酒厂来说具有重大意义。 SCA…

SSL证书添加与ICP备案,对于SpringBoot的要求

配置了SSL证书之后,在SpringBoot的resources文件夹里的application.properties会添加以下代码: server.port443 不需要添加server.address。不然会报错。 https类型的请求默认在Postman里面不可请求。 经过SSL证书处理的网页,链接中使默认…

jinja2常用基本语法

变量 {{变量名称}} 循环 {%for i in range(100)%}代码块{%endfor%} 条件判断 {%if true%}代码块1{%elif true%}代码块2{%else%}代码块3{%endif%} include导入其他模板 {%include "sub.tpl"%} 过滤器 {{vendor_list|filter()}} 继承母版 {%extends base.co…

Android JetPack Compose+Room----实现搜索记录功能

文章目录 需求概述功能展示实现搜索功能使用的技术1.Android Jetpack room2.Android JetPack Compose 代码实现编写搜索界面接入Room实现搜索功能的管理引入依赖定义包结构定义操作表的Dao类定义数据库的基础配置定义数据库的Dao管理类使用数据库升级 源码地址 需求概述 搜索功…

Java反序列化基础-类的动态加载

类加载器&双亲委派 什么是类加载器 类加载器是一个负责加载器类的对象,用于实现类加载的过程中的加载这一步。每个Java类都有一个引用指向加载它的ClassLoader。而数组类是由JVM直接生成的(数组类没有对应的二进制字节流) 类加载器有哪…