Qt Creator combobox

Qt Creator combobox

本文关键字:combobox Creator Qt      更新时间:2023-10-16

如何在硬盘中预先存在的文本文件中写入组合框当前文本?这是我的代码:

void second::on_pushButton_4_clicked()
    {
         QFile file("vik.txt");
         if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
             return;
         QTextStream out(&file);
         out << ui->comboBox_5->currentText() << "n";
}

也许您忘记关闭文件

void second::on_pushButton_4_clicked() 
{
    // Get comboBox text value
    QString txt = ui->comboBox_5->currentText();
    // Open file for writing
    QFile file("vik.txt");
    file.open(QIODevice::WriteOnly | QIODevice::Text);
    QTextStream out(&file);
    // Write in file
    out << txt << "n";
    // Close file
    file.close();
}

您的代码中有几个问题,让我逐一列举:

  • 根据您的评论,您需要此标志进行"覆盖":

    QIODevice::截断0x0008如果可能,设备在打开之前会被截断。设备的所有早期内容都将丢失。

  • 更重要的是,您检查过该方法在打开后是否返回了一些错误吗?如果是,请在那里打印file.errorString()

     if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
         qDebug() << file.errorString();
         return;
     }
    
  • 最重要的是,您可能会遇到文件不在当前工作目录中的问题。如果文件位于应用程序可执行文件旁边,请将代码中的相应行更改为:

    QFile file(QCoreApplication::applicationDirPath() + "/vik.txt");