Python 检测/确认打开对话框
在GUI测试应用程序的测试环境中,会出现这样的情况(取决于正在测试的当前配置),即通过Python 检测/确认打开对话框,python,qt,modal-dialog,pyqt,Python,Qt,Modal Dialog,Pyqt,在GUI测试应用程序的测试环境中,会出现这样的情况(取决于正在测试的当前配置),即通过QInputDialog提示用户进行选择 问题是,这将保持运行测试,直到手动单击OK按钮(无需进一步操作)。但是,我不知道如何通过编程检测此对话框。实际上我不确定是否可能,因为主循环将保留在打开对话框的函数中,直到得到用户确认 对话 measure, ok = QtGui.QInputDialog.getItem(self.centralWidget, \ "Select the m
QInputDialog
提示用户进行选择
问题是,这将保持运行测试,直到手动单击OK按钮(无需进一步操作)。但是,我不知道如何通过编程检测此对话框。实际上我不确定是否可能,因为主循环将保留在打开对话框的函数中,直到得到用户确认
对话
measure, ok = QtGui.QInputDialog.getItem(self.centralWidget, \
"Select the measure to apply", "Measure:", items, 0, False)
测试功能
print('--- Button click')
# Invokes some GUI action that in some cases includes a user input prompt via
# the QInputDialog above
self.p.TabValid.buttonRun.click()
# I tried these ones, but the program won't reach here
# because it is stuck as soon as the dialog opens
print('Widget with focus:', self.app.activeModalWidget())
print('Widget with focus:', self.app.focusWidget())
只要一个事件循环正在运行,您的代码就会始终处于控制之中。只需在定期计时器上执行一些代码,检查活动小部件是否是一个
QInputDialog
,并强制接受该输入。使用qApp.activeWindow
或qApp.activeModalWidget
我使用QTimer.singleShot
调用函数,在按钮运行后检查activeWindow()
QInputDialog.accept()
完成了其余的工作。好提示。