-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Is your enhancement request related to a problem? Please describe.
To interact with this type of elements, PlatynUI should be able to handle a Qt QTabWidget.
The Qt QTabWidget creates a Filler node with LayeredPane and PageTabList subtrees. The former carries the content of the tab pages (as Filler nodes with only the currently selected one having IsVisible and IsInView set) , the latter carries the tabs on the top to select those pages (as PageTab nodes, unfortunately - as with Qt 6.4 - all of them having IsVisible and IsInView set even when not visible because of limited dialog width!).
With "Tab2" being selected, it looks like this:
Filler "myTabs"-+-LayeredPane--------+-Filler "Tab1"
| +-Filler "Tab2" (IsVisible=True)
| +-Filler "Tab3"
|
+-PageTabList "Tab2"-+-PageTab "Tab1"
+-PageTab "Tab2"
+-PageTab "Tab3"
+-PushButton "Scroll Left"
+-PushButton "Scroll Right"
Describe the solution you'd like
It should be possible to Activate a certain tab for selecting it and get its content displayed.
It should be possible with Is Active to check if a certain tab is currently selected.
Describe alternatives you've considered
If the attributes IsInView and/or IsVisible as well as the screen rectangle of elements would be accessible via PlatynUI keywords, and if PlatynUI would know how to Mouse Click a PageTab element (currently it gives an AttributeError: 'UnknownContext' object has no attribute 'mouse' on doing so), it might be possible to implement the actual handling of the QTabWidget (i.e. to scroll tabs into view before clicking them) by using these keywords.