PyQt QTest点击QMenu

时间:2016-02-12 13:57:45

标签: pyqt pyqt4 python-unittest qtestlib

在我的PyQt应用程序中,我有一个主菜单,它具有以下结构:

Main Menu
|___
    |
    Language
    |       |
    |        Russian
    |       |
    |        English
    Exit    

我想点击俄语来测试语言是否已更改。我在GUI

中有 language_menu 的链接
[...somewhere in MainWindow...]
self.language_menu = QtGui.QMenu()
[....]

所以

from PyQt4 import QtGui, QtCore
from PyQt4.QTest import QTest
from gui import MainWindow

class TestMainWindow(unittest.TestCase):

    def setUp(self):
        self.app = QtGui.QApplication([])
        self.ui = MainWindow()

    def tearDown(self):
        self.app.deleteLater()

    def test_translation(self):
        menu = self.ui.language_menu
        rus_lang = menu.actions()[0]
        QTest.mouseClick(rus_lang, QtCore.Qt.LeftButton)

但它告诉我

  

参数1具有意外类型' QAction'

我该怎么做?它甚至可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用rus_lang.trigger()rus_lang.toggle()激活菜单项。