【Qt:实现打开文件并展示在文本编辑器中】

11 篇文章 0 订阅
订阅专栏

1 在Qt中新建一个空项目

1)Ctrl+N新建空项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2),双击.pro文件,添加下面的代码:

QT += widgets//引用了widget窗口类
RC_ICONS = heart.ico//创建了应用程序图标

3)制作一个应用程序图标,可以在阿里矢量库搜索下载:https://www.iconfont.cn/,存放在项目文件中。

在这里插入图片描述
在这里插入图片描述

2 添加一个主窗口类

1)选择项目,右击添加新文件,add new …–>C+±->C++ -->Class–>Choose。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3 添加Main.cpp文件

1)选择项目,右击添加新文件,add new …–>C+±->C++ Source Flie–>Choose

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)添加必要的代码
在这里插入图片描述

4 在项目目录创建图标目标录

在这里插入图片描述
可以在阿里矢量库搜索下载:https://www.iconfont.cn/
在这里插入图片描述

5 添加资文件,为快捷键添加图标

1)回到文件栏目,右击项目添加新文件,选择Qt–Qt Resource File,确定。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)回到项目中,打开资源文件.qrc,添加前缀,也可删去,再点击添加文件,全选,打开,确定。完成后Ctrl+S保存该文档。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 设计主窗口界面

1)打开mainwindow.h文件,输入下面的代码,定义菜单、工具、文本编辑器:
在这里插入图片描述
2)打开mainwindow.cpp文件,构造变量:
输入下面的代码
在这里插入图片描述

7 打开mainwindow.h文件,设置信号和槽功能:

输入:

public slots:
	void opneFile();

<1>选中openFile点击右键,重构refactor->在mainwindow.cpp中添加定义,回车,或者Alt+Enter->在mainwindow.cpp中添加定义,回车。

在这里插入图片描述

<2>在mainwindow.cpp中,添加头文件:

#include <QFileDialog>
#include <QTextStream>
#include <QDebug>
#include <QMessageBox>

<3>同文件内,设计openFile的槽函数:

void mainwindow::openFile() //打开文件的槽函数
{
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                    "/app", tr("Text Files (*.*)"));    //打开*.*所有类型的文本文件
    qDebug() << fileName;   //获取文件路径

    if (!fileName.isEmpty()){
        QFile file(fileName);   //不为空,创建文件对象
        if (!file.open(QFile::ReadOnly | QFile::Text)){
            QMessageBox::warning(this, tr("Warning!!!"), tr("can't read file %1: \n %2.")
                                             .arg(fileName).arg(file.errorString()));   //无法读取文件提示
        }else {
            QTextStream in(&file);  //打开成功,创建文本流
            textEdit->setText(in.readAll());    //读取所有文件内容到in,并显示在文本编辑器中
            setWindowTitle(fileName);   //设置标题为文件名
        }
    }
}

<3>同文件内,mianwindow主程序中,关联openFile信号和槽函数

//关联openFile信号和槽
    connect(action_O, &QAction::triggered, this, &mainwindow::openFile);    //动作、触发、当前主窗口,槽函数

<4>Ctrl+R,运行效果如下:

在这里插入图片描述
在这里插入图片描述

<5>同文件内,mianwindow主程序中,关联close信号和槽函数

//关联退出动作信号和槽
    connect(action_Q, &QAction::triggered, this, &mainwindow::close);

8 设置文件拖放到主窗口打开功能

动作分别为拖入、放下
1)在mainwindow.h中申明这两个函数:

protected :
	void dragEnterEvent(QDragEnterEvent *event);
	void jdropEvent(QDropEvent *event);
  1. Alt+Enter,选择在mianwindow.cpp中添加定义
    添加头文件:
#include <QDragEnterEvent>
#include <QUrl>
#include <QMimeData>
#include <QStatusBar>

3)在mianwindow.cpp中添加拖放事件的定义

void mainwindow::dragEnterEvent(QDragEnterEvent *event) //拖入事件
{
    if (event->mimeData()->hasUrls())  //检查拖放是否存在路径
        event->accept();
    else{
        event->ignore();
    }
}

void mainwindow::jdropEvent(QDropEvent *event)  //放下事件
{
    const QMimeData *mimeData = event->mimeData();  //获取事件内容
    if(mimeData->hasUrls()) {
        QList<QUrl> urlList = mimeData->urls();
        QString fileName = urlList.at(0).toLocalFile(); //读取第一个地址

        if (!fileName.isEmpty()) {  //打开文件
            QFile file(fileName);
            if(!file.open(QFile::ReadOnly | QFile::Text)) {
                QMessageBox::warning(this, tr("Warning!!!"), tr("can't read file %1: \n %2.")
                                     .arg(fileName).arg(file.errorString()));
            } else {
                QTextStream in(&file);
                textEdit->setText(in.readAll());
                setWindowTitle(fileName);
            }
        }
    }
}

4)在mainwindow.cpp的主程序中,添加允许放下:

	//接收放下操作
    setAcceptDrops(true);

5)Ctrl+R,运行效果如下:
注意,拖放只针对主窗口,如果拖到文本编辑器范围,是不会打开文件的
在这里插入图片描述

QT打开文件对话框选择文件
09-09
点击按钮,打开文件对话框选择文件,获取文件名路径、文件信息、文件名处理
QT笔记(6)——Qt打开文件与保存文件
热门推荐
abcvincent的博客
09-13 5万+
Qt打开文件与保存文件,首先打开文件qt给了一个方法直接调用就好,如下: static QString getOpenFileName
QT基础教程(QT的文件操作)
m0_49476241的博客
09-18 5071
本篇文章我们来讲解QT的文件操作,文件操作对于QT来说是非常重要的一个点,那么下面的话将给大家详细的讲解QT的文件操作。本篇文章就讲解到这里。
QT的文件操作
qq_57780685的博客
10-24 4693
QT文件操作的方法以及相关函数
QT文件对话框操作之打开文件
MelyLenient的博客
04-25 2299
本博客只针对常用操作进行说明。具体细节可仔细阅读QT官方英文文档。
qt文件操作
weixin_51459144的博客
08-18 1833
qt文件操作
Qt编写的简易文本编辑器
01-25
本项目利用Qt框架实现了一个具备基础功能的文本编辑器,让我们来深入探讨一下这个编辑器的实现原理和相关知识点。 首先,Qt是一个跨平台的应用程序开发框架,由C++编写,广泛用于开发桌面、移动以及嵌入式设备上的...
QT-富文本编辑器:具有的新建、打开、保存、剪切、复制、粘贴、字体设置、颜色设置功能
05-09
本富文本编辑器实现了用户在文本框输入文字,可以对文本框的文字进行复制、粘贴、剪切也可以打开本地文件,新建文件,保存文件,以及设置输入文字的字体即其字体样式,字体大小是否加粗,是否具有下划线等,在设置时...
qt简易文本编辑器_qt_bg.qm_QT_文本编辑器_TextEditor_
10-02
文本编辑器,这些类用于打开、保存和读取文件内容。QFile处理文件的基本操作,如打开、关闭、读写等,QTextStream则负责以文本格式读写数据。 4. **菜单和工具栏**:利用QMenuBar和QToolBar类,开发者可以创建...
QT之单文本编辑器
06-07
通过学习这个项目,你可以深入了解如何使用QT的关键组件,如QWidget和QFile,来构建一个功能基础但实用的文本编辑器。 首先,QWidget是QT的基本UI(用户界面)元素,几乎所有的可见部件都继承自QWidget。在单...
Qt开发案例:基于Qt Creator的简易文本编辑器.pdf
最新发布
05-08
本案例将介绍如何使用Qt Creator开发一个简易的文本编辑器,涵盖界面设计、文件操作、文本编辑等基本功能。 二、需求分析 简易文本编辑器需要满足以下基本需求: 界面设计:简洁明了的用户界面,包括菜单栏、工具...
QT打开文件并显示文件内容
sxycylq的博客
04-02 8651
Qt打开文件并显示文件内容,按钮操作,文件读写操作
Qt打开文件夹并选文件
龚建波
02-27 5584
QDesktopServices::openUrl() 如果参数是文件夹会在资源管理器打开,如果参数是文件会用默认打开方式打开,不符合需求。想要打开文件夹并选文件,在 Windows 上可以用 QProcess 执行 explorer 命令:
QT学习教程2】文件操作功能实现
weixin_52797278的博客
03-04 3356
0. 前言 所有教程是给自己看,学的是思想、逻辑,操作不一定100%完整,见谅。 一、界面布局 界面布局属于比较简单的内容,直接贴上结果图。 二、文件操作功能的实现 2.1 思路整理 第一,用户打开界面总会存在一个初始界面。 第二,用户可以新建一个文本,但前提是当前文本内容为“空”或已保存。 第三,用户可以保存当前文本,无论是否文本内容为”空“,都可以保存。 第四,用户可以打开一个已经存在的文本,但前提是当前文本内容为”空“或已保存。 第五,用户可以关闭当前文本界面,不退..
Qt」文件读写操作
YMGogre的博客
08-16 2007
使用 Qt 获取文件信息并进行文件读写操作。
Qt 打开文件列表选择文件,实现拖拽方式打开文件
Imagine Miracle的博客
08-25 2209
这里笔者选用的是,创建好工程后在ui界面设计添加QLineEditQPushBtton至少这两个控件,如下图摆放。
QT实现用本地资源管理器来打开文件
Helloorld_1的博客
10-30 3177
总结:这段代码会启动一个新的cmd窗口,并执行"/c"命令(执行完就返回),然后执行"start " + 你的文件夹所在目录命令(在cmd打开指定目录)。第一种:使用Qprocess命令(相当于在cmd命令管理窗口执行命令)启动外部程序之外,还可以使用其他一些方法来实现相同的功能,例如使用。这样,用户就可以在文件管理器直接打开指定的目录。方法打开一个文件或URL。在这个方法,需要传递一个。对象,并传入要访问的路径。方法检查路径是否存在,如果存在,就使用。这个例子,我们首先创建一个。
Qt打开外部文件/文件夹
左霖风的博客
12-19 5677
Qt打开路径
Qt简单打开文件
fanx021的博客
05-19 3211
实现打开文件的方法有两种:1、直接编写代码2、利用Qt的设计师功能第一种方法需要的动作都要自己构建,头文件要声明所需要的类的指针,比如QAction对应的动作。第二种只需要利用图形界面就可以,不用在头文件声明这些动作,只添加信号槽,连接信号。下面是范列:第二种方法,要在ui里添加action_open, action_exit, Text Browser控件mainwindow.h#ifndef ...
qt点击按钮打开文件
10-28
Qt,可以通过QPushButton控件来实现点击按钮打开文件的功能。具体实现步骤如下: 1. 导入必要的模块,包括QApplication、QMainWindow、QPushButton和QFileDialog。 2. 创建一个QPushButton对象,并设置按钮的文本和位置。 3. 为按钮的clicked信号连接一个槽函数,该槽函数用于打开文件对话框。 4. 在槽函数,使用QFileDialog.getExistingDirectory()方法来获取用户选择的文件夹路径,并进行相应的处理。 下面是一个示例代码: ``` import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): button = QPushButton("选择文件夹", self) button.clicked.connect(self.openFolderDialog) button.setGeometry(100, 80, 100, 30) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('打开文件夹') self.show() def openFolderDialog(self): folder_path = QFileDialog.getExistingDirectory(self, "选择文件夹", "./") print("选择的文件夹路径为:", folder_path) if __name__ == '__main__': app = QApplication(sys.argv) mainWindow = MainWindow() sys.exit(app.exec_()) ``` 当用户点击按钮时,会弹出一个文件夹选择对话框,用户选择文件夹后,程序会输出所选文件夹的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 【VS Code 使用tensorboard功能技巧】 6141
  • 【论文书写--文献的交叉引用】 4845
  • 实现两个列表对应数值相乘、相除、相加等 3938
  • 【MATLAB-基于直方图优化的图像去雾技术】 2182
  • RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年) 1929

分类专栏

  • 深度学习 25篇
  • Pytorch知识 22篇
  • Python编程基础 21篇
  • 图像处理 10篇
  • ubantu 1篇
  • linux 1篇
  • QT编程基础 11篇
  • MVS论文笔记 8篇
  • C++编程基础 6篇
  • Matlab计算机视觉 3篇
  • Python漫游数学王国 3篇
  • Python智能优化算法 5篇
  • 笔记 7篇
  • Visual studio 4篇

最新评论

  • 【VS Code 使用tensorboard功能技巧】

    知识推荐号: 没遇到过哎

  • 【VS Code 使用tensorboard功能技巧】

    晴甜: 你好,我vscode打开了自带的tensorboard会话,然后vscode都关了,网页进入localhost:6006还能查看,我lsof -i:6006显示没有进程占用6006,ps -ef | grep tensorboard也没有tensorboard进程,而且我重新开一个新的tensorboard --logdir=logs选了子文件夹显示为我启用了6006端口,结果网页打开6006日志目录还是之前vscode中默认的项目文件夹,网上找了好久都没解决办法气死我了

  • 【VS Code 使用tensorboard功能技巧】

    知识推荐号: 无法启动可以看看博客里说的处理办法

  • 【VS Code 使用tensorboard功能技巧】

    qq_51438390: 请问下,为什么一直无法启动tensorboard,报错超过60秒

  • 【VS Code 使用tensorboard功能技巧】

    king_sit_1: 帮大忙了,哥

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 计算Dice损失的函数
  • 神经网络的卷积操作中不同的卷积核和不同的填充获得同样的输出
  • 已知一条直线经过两个点,使用Python求直线外其中一个点到直线的距离
2024年24篇
2023年90篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码爱联关键词排名包年推广坑梓百度网站优化光明百度网站优化大鹏建设网站坪山网站改版松岗网站定制广州网站改版大运外贸网站建设龙岗百度网站优化福田企业网站设计坪地网站推广系统深圳外贸网站设计南澳SEO按天计费平湖推广网站丹竹头外贸网站制作罗湖设计公司网站南山网站优化观澜seo网站优化民治阿里店铺运营惠州网站优化软件福田外贸网站制作西乡百度关键词包年推广坪山网站优化丹竹头网站推广系统同乐阿里店铺托管坪地网站制作惠州网站改版塘坑网站优化排名石岩百搜词包木棉湾网站推广方案歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化