当前位置:网站首页>Introduction to Qt (5) - file operation, hotkey and mouse reading (implementation of txt window)
Introduction to Qt (5) - file operation, hotkey and mouse reading (implementation of txt window)
2022-08-08 23:06:00 【light chases rain】

注意,是选这个MainWindow
一、ui设计
1.1 Image result
1.2 类名定义
二、代码展示
2.1 MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QFileDialog>
#include <QMessageBox>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QDebug>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
void keyPressEvent(QKeyEvent *k);
void mousePressEvent(QMouseEvent *m);
~MainWindow();
private slots:
void NewActionSlots();
void OpenActionSlots();
void SaveActionSlots();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
2.2 main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
2.3 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::NewActionSlots);
connect(ui->Openaction,&QAction::triggered,this,&MainWindow::OpenActionSlots);
connect(ui->Saveaction,&QAction::triggered,this,&MainWindow::SaveActionSlots);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::NewActionSlots()
{
ui->textEdit->clear();
this->setWindowTitle("新建文本文档.txt");
}
void MainWindow::OpenActionSlots()
{
QString filename = QFileDialog::getOpenFileName(this,tr("请选择一个文件"),
QCoreApplication::applicationFilePath(),
"*.cpp");
if(filename.isEmpty())
{
QMessageBox::warning(this,"警告","请选择一个文件");
}
else {
QFile file(filename);
file.open(QIODevice::ReadOnly);
QByteArray ba = file.readAll();
ui->textEdit->setText(QString(ba));
file.close();
}
}
void MainWindow::SaveActionSlots()
{
QString filename = QFileDialog::getSaveFileName(this,tr("请选择一个文件"),
QCoreApplication::applicationFilePath());
if(filename.isEmpty())
{
QMessageBox::warning(this,"警告","请选择一个文件");
}
else {
QFile file(filename);
file.open(QIODevice::WriteOnly);
QByteArray ba;
ba.append(ui->textEdit->toPlainText());
file.write(ba);
file.close();
}
}
void MainWindow::keyPressEvent(QKeyEvent *k)
{
if(k->modifiers() == Qt::ControlModifier && k->key() == Qt::Key_S)
{
SaveActionSlots();
}
if(k->modifiers() == Qt::ControlModifier && k->key() == Qt::Key_C)
{
NewActionSlots();
}
if(k->modifiers() == Qt::ControlModifier && k->key() == Qt::Key_O)
{
OpenActionSlots();
}
}
void MainWindow::mousePressEvent(QMouseEvent *m)
{
QPoint pt = m->pos();
qDebug()<<pt;
if(m->button() == Qt::LeftButton)
{
qDebug()<<"左键被按下";
}
else if(m->button() == Qt::RightButton)
{
qDebug()<<"右键被按下";
}
}
三、成果展示
边栏推荐
猜你喜欢
wps a3格式怎么转换成a4?wps a3格式转换成a4的方法
Kubernetes 实现 CI/CD 发布流程
[Bug solution] ValueError: Object arrays cannot be loaded when allow_pickle=False
JS中的预编译(AO、GO详解)
树莓派wiringPi库的使用补充
深拷贝与浅拷贝
Qt入门(四)——连续播放图片(两种定时器的运用)
机器学习之知识点(一)
微信小程序错误 undefined Expecting ‘STRING‘,‘NUMBER‘,‘NULL‘,‘TRUE‘,‘FALSE‘,‘{‘,‘[‘, got ]解决方案
Kubernetes与OpenStack
随机推荐
wps a3格式怎么转换成a4?wps a3格式转换成a4的方法
【Pytorch】学习笔记(一)
[Bug solution] ValueError: Object arrays cannot be loaded when allow_pickle=False
JSDay1-合并两个有序数组
支付宝 To 理财排行名称修改
ALIPAY WEB log in rsa encryption analysis record
Dynamic Host Configuration Protocol DHCP (DHCPv4)
bp神经网络的学习心得
2022杭电多校六 1007-Shinobu loves trip(同余方程)
Manacher(求解最长回文子串)
虚拟化类型(配图)
MySQL query problem?
2022杭电多校六 1006-Maex (树形DP)
从stm32移植ucos2的代码到GD32
请问:支付宝上买基金安全吗
2022牛客多校六 M-Z-Game on grid(动态规划)
WeChat applet wx:for loop output example
Hi3516 使用 wifi模块
你了解你每天都在用的NAT吗?
word文档标题怎么自动编号?