gpt4 book ai didi

c++ - 使用 QFileDialog 自动保存文件

转载 作者:行者123 更新时间:2023-11-28 00:29:56 25 4
gpt4 key购买 nike

我必须使用 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 没有被选中也没有保存,我该如何实现?

最佳答案

如果文件对话框可见并且焦点设置到行编辑小部件,则 selectFile 方法不起作用。来自 qfiledialog.cpp (QT 5.2):

if (!isVisible() || !d->lineEdit()->hasFocus())
d->lineEdit()->setText(file);

对于我们的自动化测试,我们只是暂时隐藏文件对话框,调用 selectFile() 并再次显示它

关于c++ - 使用 QFileDialog 自动保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com