QT开发中文网

Qt在widget中实现另存为功能,在弹出的另存为对话框中,实现新建一个文件夹的功能,然后在文件夹中存文件,文件和文件夹同名包括后缀名c++

可以通过以下步骤实现在widget中实现另存为功能,并在弹出的对话框中实现新建文件夹的功能:

  1. 添加一个QPushButton对象,用于触发另存为操作。

  2. 在按钮的clicked信号中,使用QFileDialog::getSaveFileName()函数获取用户选择的文件名和保存路径。

  3. 如果用户在选择文件名时输入了新文件夹的名称,则需要创建该文件夹。可以使用QDir::mkdir()函数来创建新文件夹。

  4. 如果成功创建了新文件夹,则使用QFile类或QTextStream类将数据写入指定路径下的文件中。

下面是一个简单的示例代码:

void Widget::saveAs()
{
    QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), ".", tr("Text Files (*.txt)"));

    if(!fileName.isEmpty())
    {
        // extract the file name and path
        QFileInfo fileInfo(fileName);
        QString filePath = fileInfo.path();
        QString fileBaseName = fileInfo.baseName();
        QString fileSuffix = fileInfo.suffix();

        // check if a new folder needs to be created
        QString newFolderName = QInputDialog::getText(this, tr("New Folder"), tr("Enter New Folder Name:"), QLineEdit::Normal, "");
        if(!newFolderName.isEmpty())
        {
            QString newFolderPath = filePath + "/" + newFolderName;
            QDir dir(newFolderPath);
            if(!dir.exists())
            {
                if(dir.mkdir(newFolderPath))
                {
                    QFile file(newFolderPath + "/" + fileBaseName + "." + fileSuffix);
                    if(file.open(QIODevice::WriteOnly | QIODevice::Text))
                    {
                        QTextStream out(&file);
                        out << ui->textEdit->toPlainText();
                        file.close();
                    }
                }
            }
        }
        else
        {
            QFile file(fileName);
            if(file.open(QIODevice::WriteOnly | QIODevice::Text))
            {
                QTextStream out(&file);
                out << ui->textEdit->toPlainText();
                file.close();
            }
        }
    }
}

在这个示例中,我们使用了QFileDialog::getSaveFileName()函数获取用户选择的文件名和路径,并使用QInputDialog::getText()函数获取新文件夹名称。然后,我们通过QDir::mkdir()函数创建新文件夹,并使用QFile类将数据写入指定路径下的文件中。

如果用户没有输入新文件夹名称,则直接将文件保存到用户选择的路径中。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1163

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?