[PyQt] PyQt5.1 snapshot, Qt5.1.1, ASSERT failure in QVector
Phil Thompson
phil at riverbankcomputing.com
Sun Oct 13 17:51:23 BST 2013
On Thu, 10 Oct 2013 10:27:10 +0200, Johnny Karlsson
<johnny.karlsson at gmail.com> wrote:
> Hi! I’m experiencing a problem that might be a bug in PyQt. I've made
> a code example that demonstrates the problem:
>
> class CommClient(QObject):
>
> def __init__(self, parent=None):
> QObject.__init__(self)
> self._devicelist = ""
> self.timer = QTimer()
> self.timer.timeout.connect(self.test)
> self.timer.start(2000)
>
> def setDeviceList( self, devlist ):
> self._devicelist = devlist
> self.deviceListUpdated.emit()
>
> def getDevicelist(self):
> return self._devicelist
>
> deviceListUpdated = pyqtSignal()
> devicelist = pyqtProperty(str, getDevicelist,
notify=deviceListUpdated)
>
> def test(self):
> self._devicelist = "YES"
> self.deviceListUpdated.emit()
> self.timer.stop()
>
> app = QApplication(sys.argv)
> qmlRegisterType(CommClient, 'SDL', 1, 0, 'CommClient')
>
> view = QQuickView()
> view.setWidth(500)
> view.setHeight(500)
> view.setTitle('CommClient')
>
> view.setSource(QUrl('main.qml'))
> view.show()
> app.exec_()
>
>
> And the QML file:
>
> import QtQuick 2.0
> import SDL 1.0
>
> Rectangle {
> width: 400
> height: 400
>
> Text {
> id: myText
> text: commClient.devicelist
> anchors.horizontalCenter: parent.horizontalCenter
> }
>
> CommClient {
> id: commClient
> }
> }
>
> When the timer fires and the signal is emitted I get:
>
> ASSERT failure in QVector<T>::at: "index out of range", file
> ../../include/QtCore/../../src/corelib/tools/qvector.h, line 350
>
> I'm running the latest snapshot of PyQt5.1 (
> PyQt-gpl-5.1.1-snapshot-41b8f6ca2ea4. ) and stable Qt5.1.1 built from
> source on Ubuntu 12.04.
Should be fixed in tonight's snapshot.
Thanks,
Phil
More information about the PyQt
mailing list