在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.hqwc.cn/news/624682.html

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

相关文章

知道XRD标准品PDF卡片号,如何直接导出标准物质数据,简单快速一分钟完成(附jade下载安装方法)

知道XRD标准品PDF卡片号,如何直接导出标准物质数据(附jade下载安装方法) 网上找到的方法都是先检索再导出,我的样品根本检索不到,但是根据参考文献知道了自己的pdf卡片号,可通过jade直接导出数据 1.请安装…

WPF Extended.Wpf.Toolkit 加载界面

1、NuGet 中安装 Extended.Wpf.Toolkit 。 2、在MainWindow.xaml中添加xmlns:tk"http://schemas.xceed.com/wpf/xaml/toolkit" 。 MainWindow.xaml 代码如下。 <Window x:Class"WPF_Extended_Wpf_Toolkit_Loading.MainWindow" xmlns"ht…

如何把npm切换成yarn管理项目

1.删掉项目中package-lock.json和依赖包 这一步手动删掉就好 2.全局安装yarn npm install -g yarn 3.可以开始执行yarn install安装依赖 1&#xff09;执行yarn init 这一步是修改npm生成的package.json文件&#xff0c;可能会遇到这个问题&#xff1a; 这个查了一下是有…

【Java】通过poi给word首页添加水印图片

背景&#xff1a; poi并没有提供直接插入水印图片的方法&#xff0c;目前需要再word的首页插入一张水印图片&#xff0c;于是就需要通过另一种方式&#xff0c;插入透明图片&#xff08;png格式&#xff09;并将图片设置为“浮于文字上方”的方式实现该需求。 所需jar&#xf…

Midjourney提示词进阶

Midjourney提示词进阶 - 魔法特效&#xff08;法术、施法、光环、能量&#xff09; 问-我如何获得施法、射击能量和施展魔法&#xff1f; 尝试正常写作。探索使用调用方法&#xff0c;如法师使青蛙附魔&#xff0c;以及描述方法&#xff0c;如魔法师对青蛙施放绿色闪光咒语。…

HTTPS 加密解密大致流程

HTTPS简介 在我们开始配置之前&#xff0c;让我们先了解一下HTTPS和它的重要性。 为什么选择HTTPS&#xff1f; 加密传输&#xff1a;通过SSL/TLS协议&#xff0c;确保数据在传输过程中不被窃听。认证身份&#xff1a;确保客户端与预期的服务器通信&#xff0c;防止中间人攻…

vscode vue template模板中 tab键无法快速补全

之前记得一直可以的突然不知道咋的就不行了… 解决办法: 菜单栏 - 文件 - 首选项 - 设置- emmet:tab ✔就好了

「51媒体」权重高新闻源央级媒体邀约资料有哪些?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 权重高的央级媒体邀约资源包括了中国一些最具影响力和权威性的新闻机构。具体如下&#xff1a; 人民日报&#xff1a;作为中国共产党中央委员会的机关报&#xff0c;人民日报具有极高的权…

【C++】哈希一

这篇博客要说的是哈希算法&#xff0c;哈希又称为散列&#xff0c;它是将存储的值和存储的位置建立起关联关系的一种算法&#xff0c;或者说是一种将任意长度的数据映射为固定长度的输出的算法。 什么意思呢&#xff1f;我们来看一个例子&#xff1a;比如说我们要存储1&#xf…

kkFileView基于pdf.js实现多词高亮

参考文档&#xff1a; 1.文件文档在线预览转换解决方案和应用 2.kkfileview预览pdf格式文件&#xff0c;实现多关键词高亮和定位_kkfileview高亮方案-CSDN博客 3.PDF.js实现搜索多个不同的关键词高亮显示效果 最终效果&#xff1a; 需求描述&#xff1a; 预览文件时&#xff0…

免费SSL证书和付费SSL证书的区别和申请

免费SSL证书和付费SSL证书的区别点还是比较多的。对来说免费证书适用的环境会单一一些&#xff0c;一般使用免费证书的环境都是个人门户网站或者是小微企业的门户官网&#xff08;无隐私信息&#xff09;。受免费证书安全等级以及安全性的限制影响&#xff0c;如果是为了自身网…

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

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