其他功能
关于复制粘贴撤销
在textedit中已经有封装好的函数,以下四个函数因此比较简单
void MainWindow::on_action_Cut_triggered()
{
ui->textEdit->cut();
}
void MainWindow::on_action_Undo_triggered()
{
ui->textEdit->undo();
}
void MainWindow::on_action_Copy_triggered()
{
ui->textEdit->copy();
}
void MainWindow::on_action_Paste_triggered()
{
ui->textEdit->paste();
}
关于查找
首先定义一个查找框 ,并且在构造函数中初始化他
findDlg = new QDialog(this);
findDlg->setWindowTitle(tr("查找"));
findLineEdit = new QLineEdit(findDlg);
QPushButton *btn_n= new QPushButton(tr("下一个"), findDlg);
QPushButton *btn_p= new QPushButton(tr("上一个"),findDlg);
QVBoxLayout *layout= new QVBoxLayout(findDlg);
layout->addWidget(findLineEdit);
layout->addWidget(btn_n);
layout->addWidget(btn_p);
connect(btn_n, SIGNAL(clicked()), this, SLOT(showFindText_N()));
connect(btn_p, SIGNAL(clicked()), this, SLOT(showFindText_P()));
通过findDlg->show()来调出来
void MainWindow::on_action_Find_triggered()
{
findDlg->show();//查找框
}
关于关于两个查找函数
find函数接受两个参数,其中第二个参数默认为向前查找。看Find的定义和FindFlag参数,并没有找到这个默认枚举变量,不是很懂这个枚举的定义方法,暂时没搞懂默认机制怎么弄的。
void MainWindow::showFindText_N()
{
QString findstr = findLineEdit->text();
if (!ui->textEdit->find(findstr,QTextDocument::FindBackward)) //第二个参数为枚举,向后查找
{
QMessageBox::warning(this, tr("查找"),
tr("找不到%1").arg(findstr));
}
}
void MainWindow::showFindText_P()
{ QMessageBox j;
j.setWindowTitle("333");
j.exec();
QString findstr = findLineEdit->text();
if (!ui->textEdit->find(findstr)) //第二个参数为枚举,向后查找
{
QMessageBox::warning(this, tr("查找"),
tr("找不到%1").arg(findstr));
}
}
参考:
https://wizardforcel.gitbooks.io/qt-beginning/content/9.html