[QGIS-Developer] Testing a ComboBox with a QCompleter using QTest
Jo
winfixit at gmail.com
Fri Feb 28 00:45:19 PST 2020
Hi,
I'm really stuck on this.
I'm trying to test a combobox with a completer:
When I do these manually, they work:
cb = self.form.dockwidget.widget['sc_510_002']
QTest.keyClicks(cb, '9000')
QTest.qWait(1000)
QTest.keyClick(cb, Qt.Key_PageUp, Qt.NoModifier, 500)
QTest.keyClick(cb, Qt.Key_Enter, Qt.NoModifier, 500)
When I want to simulate them with the above commands, all I see is the
popup.
I also tried the following:
cb = self.form.dockwidget.widget['sc_510_002']
QTest.keyClicks(cb, '9000')
lv = cb.findChild(QListView)
QTest.qWait(1000)
QTest.mouseClick(lv.viewport(), Qt.LeftButton, 0,
lv.visualRect).center())
Based on what I found here:
https://gist.github.com/peteristhegreat/cbd8eaa0e565d0b82dbfb5c7fdc61c8d
and here:
https://vicrucann.github.io/tutorials/qttest-signals-qtreewidget/
I was glad I managed to translate it from C, but no joy.
Jo
On Sat, Feb 22, 2020 at 10:55 AM Jo <winfixit at gmail.com> wrote:
> Hi,
>
> I would love to add some testing code to my ever more complex application.
>
> Somehow I'm not succeeding though, these are my attempts:
>
> #form.dockwidget.widget['sc_510_002'].setCurrentIndex(5) # , doing it
> directly doesn't work
> QTest.keyClicks(form.dockwidget.widget['sc_510_002'], '9000 Gent',
> Qt.NoModifier, 50) # this works, a popup appears
> QTest.keyClick(form.dockwidget.widget['sc_510_002'], Qt.Key_Enter,
> Qt.NoModifier, 500)
> QTest.keyClick(form.dockwidget.widget['sc_510_002'], Qt.Key_Tab,
> Qt.NoModifier, 500)
> #QTest.keyClick(form.dockwidget.widget['sc_510_002'].completer,
> Qt.Key_Down, Qt.NoModifier, 500)
> #print(dir(form.dockwidget.widget['sc_510_002'].completer().widget()))
> #form.dockwidget.widget['sc_510_002'].completer().setCurrentRow(0)
> #QTest.keyClick(form.dockwidget.widget['sc_510_002'].completer().widget().lineEdit(),
> Qt.Key_Enter, Qt.NoModifier, 500)
> #form.dockwidget.widget['sc_510_002'].setEditText('1000 Brussel')
>
> The popup is the completer, I suppose, so I also tried to send keystrokes
> to that, but no luck.
>
> This is the method I use to add the completer to the QComboBox:
>
> def add_completer(self, items):
> self.setEditable(True)
> self.setInsertPolicy(0)
> completer = QCompleter(items, self)
> completer.setFilterMode(Qt.MatchContains)
> completer.setCaseSensitivity(False)
> self.setCompleter(completer)
> self.setStyleSheet('QScrollBar: vertical {width: 16px;}')
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20200228/95cb4282/attachment.html>
More information about the QGIS-Developer
mailing list