基于Qt Framework的QNotead

September 21st, 2013 by JasonLe's Tech Leave a reply »

今天是中秋的第三天。闲来无事所以编了个QNotePad

由于Qt为我们我们提供了大量优质的API,所以我们只要学习了解了这些函数,就可以快速开发出一款属于自己的note++

这个东西的精髓在于Open Save SaveAs的处理。

我们可以使用QTextEdit空间,然后配合QTextStream使用.
另外我们要主要的一点就是Qt中reasource的使用。我们要先建立资源文件,然后倒入resource,最后在qt designer中加载 图标。 除此之外就是menubar的使用。我们可以把菜单中的图标放在menubar中,这样可以方便操作。

Key Code:

void MainWindow::on_actionOpen_triggered()
{
    QString file = QFileDialog::getOpenFileName(this,"Open a file");

    if(!file.isEmpty())
    {
        QFile mFile(file);
        if(mFile.open(QFile::ReadOnly | QFile::Text))
        {
            mFileName = file;
             this->setWindowTitle(mFileName);
            QTextStream in(&mFile);
            QString text = in.readAll();

            mFile.close();

            ui->textEdit->setPlainText(text);

        }
    }
}

void MainWindow::on_actionSave_triggered()
{
    QFile mFile(mFileName);
    if(mFile.open(QFile::WriteOnly | QFile::Text))
    {
        QTextStream out(&mFile);
        this->setWindowTitle(mFileName);
        out << ui->textEdit->toPlainText();

        mFile.flush();
        mFile.close();
    }
}

void MainWindow::on_actionSave_As_triggered()
{
    QString file = QFileDialog::getSaveFileName(this,"Save a file");
    if(!file.isEmpty())
    {
        mFileName = file;
        on_actionSave_triggered();
    }
}

2013-09-21 16:10:24的屏幕截图

DOT