qt 实现自己的小笔记本(哼。拿下本本记下来了
1.1实现我的记事本
1.3这次使用菜单了,笔记本需要有菜单的选项(就是那个下拉菜单框
1.4在菜单栏上双击 即可添加选项 子栏目一样
文件-新建/打开/保存/退出 共四个选项(可以附加一个打开图片的选项)
1.5 括号内取地址加符号等价于 快捷键 然后子栏目没法输入英文 可以在主栏目输入好之后复制粘贴过去
(同时记得 你的每个选项的名字 在右侧组件栏中 修改一下名字喲 (只要自己能认出来就行))
1.6 选择文本编辑框 拖入 然后点击整体框 选择垂直布局
/***********************************************************************************************************************************************/
效果展示:
啊啊啊gif太大不让传。。。你们自己试试吧。
/***********************************************************************************************************************************************/
接下来就是代码的实现:
基本上我会做好注释 觉得不错的记得点赞,有问题记得留言欧~
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QFileDialog>
#include <QString>
#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QImage>
#include <QByteArray>
#include <QFileDialog>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;private slots:void newActionSlot();void openActionSlot();void openPictureSlot();void quitActionSlot();void saveActionSlot();};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->newaction,&QAction::triggered,this,&MainWindow::newActionSlot);connect(ui->openaction,&QAction::triggered,this,&MainWindow::openActionSlot);connect(ui->quitaction,&QAction::triggered,this,&MainWindow::quitActionSlot);connect(ui->saveaction,&QAction::triggered,this,&MainWindow::saveActionSlot);connect(ui->openpicture,&QAction::triggered,this,&MainWindow::openPictureSlot);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::newActionSlot()//新建 就是清空当前文档(也就一个textEdit)中的内容 然后把窗口的名字改成 你想要的新名字
{ui->textEdit->clear();this->setWindowTitle("新建文本文档.txt");
}void MainWindow::openActionSlot()//打开一个文件 那么就需要这个文件的名字
{QString filename = QFileDialog::getOpenFileName(this,"打开文件",QCoreApplication::applicationDirPath());// 参数2:对话框标题 参数3:默认打开目录(这个函数就是调用当前目录 ....最后其实还有一个参数就是可以选择的文件类型if(filename.isEmpty())//如果你没有选择文件就关闭了选择窗口 那么文件名不就是空了嘛{qDebug()<<"请选择文件";}else{QFile *file = new QFile;file->setFileName(filename);file->open(QIODevice::ReadOnly);ui->textEdit->setText(QString(file->readAll()));file->close();delete file;}
}void MainWindow::openPictureSlot()//选择性使用 我为了打开一张图片而已
{QString filename = QFileDialog::getOpenFileName(this,"打开图片",QCoreApplication::applicationDirPath());if(filename.isEmpty()){qDebug()<<"请选择文件";}else{//这里和上面不同 用到了QImage 进行图片的载入QImage img;img.load(filename);ui->label->setPixmap(QPixmap::fromImage(img));/*注:也可以直接用QPixmap类的对象采用Load函数加载图像。这里说下QImage和QPixmap类的用处:* QImage为图像的像素级访问做了优化,QPixmap使用底层平台的绘制系统进行绘制,无法提供像素级别的操作,而QImage则是使用独立于硬件的绘制系统。*/}
}void MainWindow::quitActionSlot()//这个最简单 直接关闭窗口就行
{this->close();
}void MainWindow::saveActionSlot()
{QString filename = QFileDialog::getSaveFileName(this,"打开文件",QCoreApplication::applicationDirPath());// getsaveFileName和上面的getOpenFileName 就是区别if(filename.isEmpty()){qDebug()<<"请选择图片";}else{QByteArray data;data.append(ui->textEdit->toPlainText()); //QByteArray 自带转换函数append 将QString 格式 转换成 QByteArray 然后就可以写回文件了QFile *file = new QFile;file->setFileName(filename);file->open(QIODevice::WriteOnly);file->write(data);file->close();//最后写完文件后记得将文件关闭delete file;}
}
main.cpp中没有任何改变
#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}
qt 实现自己的小笔记本(哼。拿下本本记下来了相关推荐
- Qt Creator开发基于小部件的应用程序
Qt Creator开发基于小部件的应用程序 开发基于小部件的应用程序 代码编辑器集成 管理影像资源 指定Qt Designer的设置 使用设备皮肤预览表单 添加小部件 开发基于小部件的应用程序 Qt ...
- 用Qt做的拼图小游戏
思路:在主界面可以选择图片进行对应的拼图,把一张600*600的图片分割成3*3张200*200的九宫格图片,对每张图片进行编号,对应0~8,然后打乱顺序,用的是随机函数,然后添加鼠标过滤事件:鼠标左 ...
- 小米pro 笔记本 计算机,小米笔记本pro,比差大赛,看了小米笔记本Pro 8250u解锁记。...
小米笔记本pro,比差大赛,看了小米笔记本Pro 8250u解锁记. 2019-12-19 16:54:56 1点赞 0收藏 1评论 创作立场声明:笔记本的比差比赛 本来到了冷天,笔记本本来就可以不工 ...
- excel表格内文字怎么换行_Excel单元格内如何换行,这几招快拿小本本记下来
Excel单元格如何换行?我们在日常的数据统计中经常会遇到的问题.我们会遇到单元格太小导致输入的内容无法显示的情况.是不是苦恼?其实我们可以通过自动换行的方式将数据在单元格中以多行的方式显示,也就是e ...
- 微信小程序期末大作业 记单词小程序 适合初学者学习使用
微信小程序期末大作业 记单词小程序 小程序如下图所示:(下载链接在文末) 点我下载资源 https://download.csdn.net/download/weixin_43474701/59677 ...
- 联想微型计算机m910q6,一台比较完美的黑苹果小主机 联想M910Q折腾记 opencore EFI分享...
一台比较完美的黑苹果小主机 联想M910Q折腾记 opencore EFI分享 2020-05-27 13:23:39 77点赞 487收藏 93评论 追加修改(2020-05-27 19:27:06 ...
- 【小程序迁移】微信小程序迁移到支付宝记坑
[小程序迁移]微信小程序迁移到支付宝记坑 文档控制台网址汇总 前言 本地区别 仅企业可用的功能 限制功能 插件区别 云开发API区别 需要做的代码变更 xml部分 CSS部分 JS部分 自定义组件 比 ...
- 关于如何解决java线程安全问题?很重要? 快拿小本本记下来!
关于如何解决java线程安全问题?很重要? 快拿小本本记下来! 线程安全问题 什么是线程安全问题? 线程同步 同步代码块 同步方法 lock显示锁 线程安全问题 什么是线程安全问题? 多个线程操作同一 ...
- 转行|什么是游戏建模??小本本记下来
今天来说一下游戏建模-小本本记下来
最新文章
- android aidl接口初步了解
- 一个html多个html文件怎么打开网页,Firefox如何单窗口多页面浏览
- android调节音量——AudioManager的应用
- php7++linux安装,安装PHP5和PHP7
- oracle+执行变量语句,ORACLE sql 语句的执行过程(SQL性能调整)
- Java 第一大框架:Spring 的 IoC 跟 AOP 雏形如何实现?
- android 卷帘动画,Android卷帘门动画实践
- 大数据技术原理与应用学习笔记(一)
- linux uvc协议_linux 使用 uvc 摄像头
- 基于c语言的串口通讯,基于C语言的RS232串行接口通信设计与实现
- mac下报 504 Gateway Time-out
- 此页上的ActiveX控件和本页上的其他部分的交互可能不安全的解决办法
- SAN存储的配置与管理
- shell脚本清理网宿cdn缓存
- python爬虫之爬取捞月狗直播信息
- stm32 u8g2移植笔记
- patch 和put的区别
- [译]用R语言做挖掘数据《四》
- py225基于python的家政管理系统设计
- MVP Open Day手记——场上场下同样精彩
热门文章
- jstat -gcutil 输出结果分析_JVM故障分析
- android p 权限流程,Android native 权限控制流程
- python语言表白语句简单_简短的表白语句
- linux 打开端口1935,CentOS服务器开放端口
- cocos 报错dts文件未导入_cocos2dx 3.4项目 导入到 eclipse 爬过的坑
- 各互联网公司面试题整理
- python 列表 换行_python基础语法学习——参考Python Crash Course
- pip install transformers出现拒绝访问
- 在线安装非GPU版的tensorflow流程
- 熵值法计算权重有异常值_指标权重确定方法 1-熵值法