私はC++とQTを使って簡単なテキストエディタに保存機能を追加しようとしています。私はあなたのファイルを保存し、同じインデックスを持つ新しいタブを開き、タブのタイトルとして新しいファイルの名前を持っているときに現在のタブを閉じようとしています。QT With C++:Save Asを実装する方法
QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), "", tr("All Files (*)"));
if (fileName.isEmpty())
return;
else
{
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly))
{
QMessageBox::information(this, tr("Unable to open file"),
file.errorString());
return;
}
QTextStream out (&file);`
out << ui->plainTextEdit->toPlainText();
QFileInfo FileData(file);
int currentTab = ui->tabWidget->currentIndex();
ui->tabWidget->removeTab(currentTab);
QTextStream InputData(&file);
ui->tabWidget->insertTab(currentTab, new Form(), FileData.fileName());
ui->tabWidget->setCurrentIndex(currentTab);
ui->plainTextEdit->setPlainText(InputData.readAll());
file.flush();
file.close();
}
私は新しいファイルを保存しようと、それが選択した場所にファイルを保存し、ファイル名で現在のタブを置き換えますが、それはテキストにファイルを書き込みません:これは私のコードです窓。どんな助けも素晴らしいだろう。ここで
教えてください: plainTextEditはどこですか? mainWindowまたはFormで、tabWidgetに追加しますか? あなたのコードから、plainTextEditは上記のコードがあるメインウィンドウにあるようです。 その場合、 "Form"に別のplainTextEditがあると、両方が異なっていることが分かり、そのコードは機能しません。 – Sumit
@Sumit plainTextEditは形式になっているので、なぜ機能しないのかが分かります。 plainTextEditにはどうすればアクセスできますか? – connorb08
Formterクラスに2つのパブリック関数をsetterとgetterとして追加する必要があります。下記のコードをご覧ください。 – Sumit