用Qt开发Windows桌面应用程序,以Notepad为案例
00.项目介绍
01.安装QT
02.创建项目
03.文件结构
04.窗口UI
05.窗口图标
图标文件【下载】地址
06.创建菜单
07.创建工具栏
08.创建文本框
09.创建槽函数
10.编辑槽函数
11.文本框居中
//mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setCentralWidget(ui->textEdit);
}
c++
12.新建文档
//mainwindow.h
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
QString currentFile;
};
c++
//mainwindow.cpp
//新建文件
void MainWindow::on_new_file_triggered()
{
qDebug()<<"Start Create New File ...";
currentFile.clear();
ui->textEdit->setText("");
}
c++
13.打开文档
//mainwindow.cpp
#include "QFileDialog"
#include "QMessageBox"
//打开文件
void MainWindow::on_open_file_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"打开文件");
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly|QFile::Text)){
QMessageBox::warning(this,"警告","无法打开此文件:"+file.errorString());
return;
}
currentFile = fileName;
setWindowTitle(fileName);
QTextStream in(&file);
QString text = in.readAll();
ui->textEdit->setText(text);
file.close();
}
c++
14.保存文档
//mainwindow.cpp
#include "QFileDialog"
#include "QMessageBox"
//保存文件
void MainWindow::on_save_file_triggered()
{
QString fileName;
if(currentFile.isEmpty()){
fileName =QFileDialog::getSaveFileName(this,"保存文件");
currentFile =fileName;
}else{
fileName =currentFile;
}
QFile file(fileName);
if(!file.open(QIODevice::WriteOnly|QFile::Text)){
QMessageBox::warning(this,"警告","无法保存文件:"+file.errorString());
return;
}
setWindowTitle(fileName);
QTextStream out(&file);
QString text =ui->textEdit->toHtml();
out<<text;
file.close();
}
c++