这款功能全面的Qt记事本应用程序,提供包括打开、新建、保存在内的基础文件操作,同时具备查找、居中显示、自定义字体与颜色等功能,并支持文本的剪切、复制及粘贴。是一款集实用性和便捷性于一体的高效编辑工具。
使用Qt开发工具创建一个记事本应用程序,在该程序中用户可以通过图形界面进行操作,并利用Qt提供的库来设计记事本的基本窗口功能,包括打开、新建、保存、另存为、查找文本、居中文档以及设置字体和颜色等特性。
以下是核心代码的讲解:
1. 打开文件的功能:
```cpp
void MainWindow::on_action_2_triggered(){
QString filename = QFileDialog::getOpenFileName(this);
loadFile(filename);
}
```
当用户点击“打开”选项时,系统会显示一个对话框让用户选择要打开的文件。一旦选择了文件名,`loadFile()` 函数会被调用来加载该文件的内容。
3. 保存功能:
```cpp
void MainWindow::on_action_3_triggered(){
if(isSaved){
saveFile(curFile);
} else{
do_file_SaveAS();
}
}
```
点击“保存”按钮时,程序会检查`isSaved`变量以判断当前文件是否已经被保存。如果已保存,则直接调用 `saveFile()` 函数来更新文件;若未被保存,则执行另存为操作。
5. 关闭功能:
```cpp
void MainWindow::on_action_5_triggered(){
if(close){
QMessageBox::information(this,提示,文件尚未保存,关闭);
}else{
ui->textEdit->close();
}
}
```
当用户尝试通过点击“关闭”选项来退出应用程序时,程序会检查当前文档是否已被保存。如果未被保存,则显示一个消息框提醒用户;否则直接关闭文本编辑器。
11. 查找功能:
```cpp
void MainWindow::on_action_11_triggered(){
QDialog *closefind=new QDialog(this);
QDialog *findDlg=new QDialog(this);
find_textLineEdit = new QLineEdit(findDlg);
QPushButton *find_Bth = new QPushButton(tr(查找下一个),findDlg);
QPushButton *close_find= new QPushButton(tr(关闭),closefind);
ui->gridLayout->addWidget(find_textLineEdit);
ui->gridLayout->addWidget(find_Bth);
ui->gridLayout->addWidget(close_find);
connect(find_Bth,SIGNAL(clicked()),this,SLOT(show_findText()));
connect(close_find,SIGNAL(clicked()),this,SLOT(close_findhangshu()));
}
```
点击“查找”选项时,程序会创建一个新对话框以供用户输入要搜索的文本。该对话框中包含两个按钮:“查找下一个”,用于继续在文档内寻找匹配项;以及“关闭”,用来结束当前操作并隐藏窗口。
```cpp
void MainWindow::show_findText(){
QString findText = find_textLineEdit->text();
if(!ui->textEdit->find(findText, QTextDocument::FindBackward)){
QMessageBox::warning(this,tr(查找),tr(找不到 %1).arg(findText));
}
}
```
`show_findText()` 函数负责从 `QLineEdit` 控件中获取用户输入的搜索文本,并在文档内执行向前或向后的搜索。如果未能找到匹配项,则会显示一条警告信息提示用户所找内容不存在。
以上代码展示了如何使用Qt框架来实现一个基础但功能全面的记事本应用,包括基本的操作如文件管理、查找和编辑等。