2016-04-18 8 views
0

Ich möchte, dass die Elemente in einer Combobox überprüfbar sind. Ich habe einen Weg gefunden, dies zu tun here.Wie portiere ich MultiCheckComboBox zu PySide?

Dieses spezielle Beispiel verwendet PyQt und da ich PySide verwende, benötigt es einige Änderungen zu arbeiten.

Der erste Fehler, den ich bekomme, ist etwa QStringList, die ich mit [] ersetzt.

Dann bekomme ich folgende Fehlermeldung:

Traceback (most recent call last): 
    File "MultiCheckComboBox.py", line 401, in data 
    if not value.isValid(): 
AttributeError: 'NoneType' object has no attribute 'isValid' 

Ich bin nicht sicher, was geändert werden muss den obigen Fehler zu beheben.

+0

Summerfield, der buchstäblich das Buch über PyQt geschrieben hat, hat Notizen über die Portierung von Dingen auf PySide hier: http://www.qtrac.eu/pyqtbook.html. Außerdem gibt es hier noch einige zusätzliche Hinweise, wie man Summerfields Buch von PyQt zu PySide portieren kann, das einige nützliche Dinge haben könnte: https://github.com/EricThomson/PySideSummer. – neuronet

Antwort

0

PyQt4 (standardmäßig) gibt einige Werte als Instanzen von QVariant zurück (obwohl es so konfiguriert werden kann, dass ein nativer Python-Typ zurückgegeben wird). PySide wird jedoch immer in native Python-Typen konvertiert.

Ihr Code geht davon aus, dass PyQt4 QVariant verwendet. Diese Codezeile geht davon aus, dass value eine QVariant ist. Sie werden es ändern müssen:

if value is not None: 

in diesem Fall jedoch ist dies unwahrscheinlich, dass die einzige Instanz eines QVariant in diesem Code und die Änderung, die Sie zu denen machen brauchen, um auf der QVariant Funktion abhängig sein dass der Code versucht anzurufen.

Verwandte Themen