QTest、Qt、C++ を使用してテストを自動化する必要があります: タブ (tabwidget の一部) にテキストを書き込んで閉じようとすると、その後 QFileDialog が表示されます (タブのプレーンテキストを変更したため)。次のように QFileDialog を「キャッチ」します。
QWidgetList topWidgets = QApplication::topLevelWidgets();
foreach (QWidget *w, topWidgets) {
if (QFileDialog *fd = qobject_cast<QFileDialog *>(w)) {
fd->setFileMode(QFileDialog::ExistingFiles);
fd->selectFile("/tmp/test.txt");
}
}
QFileDialog オブジェクトを取得した後、タブからの変更を、以前に tmp ディレクトリに作成したファイル「test.txt」に保存します。これを実行しても何も起こらず、QFileDialog がポップアップしますが、test.txt が選択されておらず、保存されていません。どうすればこれを達成できますか?