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

news2024/11/25 7:21:45

文本浏览器

        设计一个文本浏览器程序,可以打开、显示 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);
    }else
        ui->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.coloradmin.cn/o/1600484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费的 ChatGPT、GPTs、AI绘画(国内版)

🔥博客主页:白云如幻❤️感谢大家点赞👍收藏⭐评论✍️ ChatGPT3.5、GPT4.0、GPTs、AI绘画相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚…

Elasticsearch的使用教程

Elasticsearch简介 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行…

【读论文】【泛读】三篇生成式自动驾驶场景生成: Bevstreet, DisCoScene, BerfScene

文章目录 1. Street-View Image Generation from a Bird’s-Eye View Layout1.1 Problem introduction1.2 Why1.3 How1.4 My takeaway 2. DisCoScene: Spatially Disentangled Generative Radiance Fields for Controllable 3D-aware Scene Synthesis2.1 What2.2 Why2.3 How2.4…

hadoop编程之工资序列化排序

数据集展示 7369SMITHCLERK79021980/12/17800207499ALLENSALESMAN76981981/2/201600300307521WARDSALESMAN76981981/2/221250500307566JONESMANAGER78391981/4/22975207654MARTINSALESMAN76981981/9/2812501400307698BLAKEMANAGER78391981/5/12850307782CLARKMANAGER78391981/…

【Image captioning】论文阅读九—Self-Distillation for Few-Shot Image Captioning_2022

摘要 大规模图像字幕数据集的开发成本高昂,而大量未配对的图像和文本语料库可能有助于减少手动注释的工作。在本文中,我们研究了只需要少量带注释的图像标题对的少样本图像标题问题。我们提出了一种基于集成的自蒸馏方法,允许使用不成对的图像和字幕来训练图像字幕模型。该…

Flask Web 应用与 MongoDB 集成:用户登录和退出

在本文中,我们将探讨如何使用 Flask Web 框架和 MongoDB 数据库构建一个简单的 Web 应用。我们将使用 Flask-PyMongo 扩展来实现 MongoDB 集成,并使用 Flask-Login 扩展来处理用户认证。 1. 安装所需库 首先,我们需要安装 Flask、Flask-PyM…

如何利用纯前端技术,实现一个网页版视频编辑器?

纯网页版视频编辑器 一、前言二、功能实现三、所需技术四、部分功能实现4.1 素材预设4.2 多轨道剪辑 一、前言 介绍:本篇文章打算利用纯前端的技术,来实现一个网页版的视频编辑器。为什么突然想做一个这么项目来呢,主要是最近一直在利用手机…

初识数据库与数据库管理系统

实体的概念与数据库 实体(对象): 客观存在的事物都是实体实体数据的存储要求: 必须按照一定的分类和规律存储数据库: 专门用于存储这些实体的信息的数据集合数据库的特点: 海量存储数据/数据检索非常方便保持数据信息的一致/完整/并实现数据…

C# .NET 中的反应式系统

概述:反应式系统已成为构建健壮、可扩展和响应迅速的应用程序的强大范式。这些系统被设计为更具弹性、弹性和消息驱动性,确保它们在各种条件下保持响应,包括高负载、网络延迟和故障。在本文中,我们将探讨 .NET 生态系统中反应式系…

Day 15 Linux网络管理

IP解析 IP地址组成:IP地址由4部分数字组成,每部分数字对应于8位二进制数字,各部分之间用小数点分开,这是点分2进制。如果换算为10进制我们称为点分10进制。 每个ip地址由两部分组成网络地址(NetID)和主机地址(HostID).网络地址表…

DataGrip数据库管理工具安装使用

DataGrip数据库管理工具安装使用 DataGrip介绍 DataGrip是jetbrains旗下的一款数据库管理工具,相信做过java开发的同学都知道,idea就是这家公司发明的。 DataGrip 是JetBrains公司开发的数据库管理客户端工具(操作数据库的IDE,…

看图找LOGO,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建生活场景下的商品商标LOGO检测识别系统

日常生活中,我们会看到眼花缭乱的各种各样的产品logo,但是往往却未必能认全,正因为有这个想法,这里我花费了过去近两周的时间采集和构建了包含50种商品商标logo的数据集,基于YOLOv8全系列的参数模型开发构建了对应的检…

初识--Linux的虚拟地址空间

重新了解地址空间 在学习c/c语言的时候,大家一定见过以下这张图 说的是程序会加载在如图的结构上,实际上,我们真的对他很了解吗,而在Linux进程控制这,就会有一个奇怪的现象 前提提要:简要介绍一下fork函数 进程内核数据结构(PCB)自己的代码以及数据 在Linux中,fork可以从当…

什么是邮箱分身?如何快速创建30个邮箱分身?

很多人只知道微信、QQ等应用分身,对于邮箱分身并不是很了解。邮箱分身和他们的不同点在于我们直接在原有邮箱的基础上创立新的虚拟邮箱地址,并且密码一致,在我们需要运营多个社交媒体账号或者管理多个项目的情况下,邮箱分身是一个…

盲盒小程序成为收益“法宝”?盲盒线上如何发展

近年来,盲盒在年轻人中掀起了一股潮玩热风,受到了不少年轻人的青睐,盲盒商品更是在不断创新中,收藏价值逐渐提高。随着市场规模的扩大,越来越多的玩家和商家涌入到了市场中,盲盒的商业模式正在加快发展中。…

人工智能与IP代理池:解析网络数据采集的未来

前言 随着互联网的快速发展,数据成为了当今社会最宝贵的资源之一。然而,要获取大量的网络数据并进行有效的分析,往往需要面对诸多挑战,其中之一就是网络封锁与反爬虫机制。在这个背景下,人工智能(AI&#x…

【CANN训练营】目标检测(YoloV5s)实践(Python实现)

样例介绍 使用多路离线视频流(* .mp4)作为应用程序的输入,基于YoloV5s模型对输入视频中的物体做实时检测,将推理结果信息使用imshow方式显示。 样例代码逻辑如下所示: 环境信息 CPU:Intel Xeon Gold 63…

ASP.NET基于CS应用程序平台多语种技术应用研究

摘 要 C/S应用程序平台多语种技术是一种基于C/S应用技术结构平台的关于多语种的转换和翻译技术。本设计基于Visual Studio.Net集成开发环境,采用SQL Server2000进行数据库后台开发。通过采用数据字典实现应用系统的静态文本转换;通过使用Visual Studio.…

适用于 Windows 的 10 个顶级 PDF 编辑器 [免费和付费]

曾经打开PDF文件,感觉自己被困在数字迷宫中吗?无法编辑的文本、无法调整大小的图像以及签署感觉像是一件苦差事的文档?好吧,不用再担心了!本指南解开了在 Windows 上掌握 PDF 的秘密,其中包含 10 款适用于 …

LoRA:大模型的低阶自适用(使用BERT在IMDB数据集上运用LoRA微调)

文章目录 简介LoRA文章主要贡献LoRA技术模型图技术细节论文实验结果LoRA在bert的运用LoRA核心代码实战分析 简介 论文链接https://arxiv.org/pdf/2106.09685v2.pdf 本文将先介绍论文中的LoRA技术,然后以BERT为例在IMDB数据集上代码实现运用这项微调技术。 代码数…