我必须使用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对象后,我希望我从标签中的更改保存在文件&#34; test.txt&#34;我之前在tmp目录中创建的。当我执行此操作没有任何反应时,弹出QFileDialog,但是没有选择test.txt并且没有保存,我该如何实现呢?
答案 0 :(得分:2)
如果filedialog可见且焦点设置为行编辑小部件,则selectFile方法不起作用。来自qfiledialog.cpp(QT 5.2):
if (!isVisible() || !d->lineEdit()->hasFocus())
d->lineEdit()->setText(file);
对于我们的自动化测试,我们只是隐藏了一段时间,调用selectFile()并再次显示
答案 1 :(得分:1)
试试这个:
var client = new AMQPClient(Policy.merge({
senderLink: {
encoder: function(body) { return body; }
},
receiverLink: {
decoder: function(body) { return body; }
}
}, Policy.EventHub));