Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Squish/Verifying the Existence of a Menu Item: Difference between revisions
< Squish
Jump to navigation
Jump to search
(Mark as not-a-category) |
AutoSpider (talk | contribs) m (AutoSpider moved page Category:Tools::Squish::Verifying the existence of a menu item to Squish/Verifying the Existence of a Menu Item: Title name format) |
Revision as of 02:56, 25 November 2017
This article is nominated for deletion. Reason: Page not category. Include as single block in Squish: verifying the existence of a menu item if relevant Please raise your support/opposition to this nomination in the article's discussion page. |
To verify the existence of a menu item within a menu, there are multiple approaches: 1) accessing the QAction list supplied to us by the QWidget class through the Qt API or 2) using Squish's real name to see if the object exists.
In the end, the usage of any of these approaches are as simple as:
test.verify(menuItemExists("File", "&Save"))<code>
== Qt API approach ==
This approach uses the Qt API to access the menu and the menu's actions, and then iterate through all of the actions to see if it contains the one we are looking for.
def menuItemExists(menu, menuItem):
menuName = "{title='s' type='QMenu' window=':Window'}" menu waitFor("object.exists(menuName)", 20000) actions = findObject(menuName).actions() for i in range(actions.size()): action = actions.at(i) if action.text == menuItem: return True
return False
We start out by using the real name of the menu to identify it, as that gives us the ability to dynamically specify which menu Squish should be looking for. We then wait for it to exist, to make sure the script is not played back to fast, retrieve the QAction list from the menu and iterate through them, comparing the text property of QAction with the text we supply in the argument.
== Squish's real name approach ==
Similar to the approach above where we use the real name to get to the menu, we do the same thing but with the menu item instead.
def menuItemExists(menu, menuItem):
menuName = "{title='s' type='QMenu' window=':Window'}" menu
menuItemName = "{container=%s text='s' type='QAction'}" (menuName, menuItem)
return object.exists(menuItemName)