Jump to content

[Python] PyQt5 Bindings


Recommended Posts

Wie kann ich denn den RED auf PyQt5 aktualisieren? Ich habe via Synaptic die PyQt5-Pakete installiert, ich habe die Source von Riverbank-Computing geladen und per configure.py installiert. Qt5 ist bereits installiert.

Trotzdem -- die Paketliste im Brickviewer > Versions zeigt mit nur die qt4-Bindings. Und wenn ich ein Testprogramm starten will (GUI gebaut mit PyQt5), dann bricht es ab und es heißt im stdout-log: "QXcbConnection: Could not connect to display".

Wäre das nicht sinnvoll, generell Qt5/PyQt5 mit dem Image auszuliefern?

merci, md

Link zu diesem Kommentar
Share on other sites

Teilerfolg! Wenn ich über TightVNC den Red-desktop aufrufe, lässt sich das Programm starten -- via Terminal, direkt in home/tf/programs/programmname/bin > python3 progname.py. GUI erscheint, funktioniert.

Eine Warnung wird zuvor im Terminal ausgegeben: "libEGL warning: GLX/DRI2 is not supported". -? Und eine aufs Keyboard bezogene Meldung von Qt, was sich aber nicht weiter bemerkbar macht.

So.

Jetzt denke ich mir, das müsste doch auch über den Brickviewer gehen, oder? Also aufm Program-Tab "Start" klicken, aber da fliegt das Ding jedesmal wieder nach ein paar Sekunden raus, noch bevor irgendwo irgendwas vom GUI zu sehen ist. Fehlermeldung wie gehabt: "QXcbConnection: Could not connect to display 0". Env-Variable DISPLAY:0 ist gesetzt.

Monitor ist über HDMI angeschlossen, aber ich seh nur den Desktop.

Liegt hier irgendein Denkfehler meinerseits vor?

grazie, macduff

 

 

Link zu diesem Kommentar
Share on other sites

Wenn Du über die Brickv-Console ein Programm startest, dann musst Du

 

- ein laufendes X oder VNC haben

- das Display des X-Servers kennen (remote ist nicht :0)

- Zugriffsrechte auf das Display haben

 

Wenn Du Dich z.B. mit einer ssh-Session anmeldest (die hat erstmal keine Verbindung zu X) kannst Du zwar über "export DISPLAY=:0" das Display auf das Hauptdisplay lenken, aber in einem X-Terminal des Hauptdisplays musst Du erstmal "xhost +" eingeben, damit Du von einem anderen Terminal graphische Anwendungen starten darfst, sonst könnte ja jeder auf Deinem Bildschirm was starten...

Link zu diesem Kommentar
Share on other sites

Viele Dank für die Mühe, remotecontrol.

Die Sache liegt ein bisschen anders: ich möchte das Programm nicht über die Console im Brickviewer starten, sondern nach Upload via Programm-Tab -- so wie im RedBrick-Tutorial für eine kleine Python-App mit GUI beschrieben (http://www.tinkerforge.com/de/doc/Tutorials/Tutorial_RED_Brick/Tutorial.html#tutorial-red-brick).

Dass meine Anwendung grundsätzlich läuft, auf dem Red, habe ich ja per TightVNC überprüft.

 

Link zu diesem Kommentar
Share on other sites

Ich schätze mal, mein Image (1.4) hat bei all der Rumprobiererei einen Schaden abbekommen, denn es startet trotz in brickviewer > settings > services aktivierten Desktops nur bis zum prompt. "startx" via Console führt zu einer fehlermeldung. Jetzt mach ich halt einen neuen Anlaug mit einem frischen 1.5...

- md

Link zu diesem Kommentar
Share on other sites

danke, photron.

Aber ... ich habe's jetzt genauso gemacht wie von dir beschrieben, und bekomme nach wie vor die gleiche Meldung:

"QXcbConnection: Could not connect to display"

Mit neuem & sauberen Image 1.5, Aktualisierung auf PyQt5 per apt-get, mit dem von dir angegebenen PyQt5-Beispiel, mit dem ausm Tutorial, mit meinem Programm. Sowie ein anderer Monitor. Hilft alles nix. Nach einer Sekunde stoppt die Anwendung mit eben dieser Meldung.

Tja, was tun? Ich würde schon gern einen Monitor verwenden...

 

Nebenbei:

Beim apt-get upgrade bleiben am ende diese errors übrig:

 

dpkg: error processing archive /var/cache/apt/archives/systemd_215-11_armhf.deb

(--unpack):                                                                   

trying to overwrite '/usr/share/dbus-1/system-services/org.freedesktop.systemd1

.service', which is also in package systemd-shim 9-1                           

dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)           

Failed to set capabilities on file `/usr/bin/systemd-detect-virt' (Invalid argum

ent)                                                                           

The value of the capability argument is not permitted for a file. Or the file is

not a regular (non-symlink) file                                             

Processing triggers for dbus (1.8.12-3) ...                                   

Errors were encountered while processing:                                     

/var/cache/apt/archives/systemd_215-11_armhf.deb                             

E: Sub-process /usr/bin/dpkg returned an error code (1)                       

Link zu diesem Kommentar
Share on other sites

Das apt-get upgrade Problem kann ich hier reproduzieren. Sieht aus als wäre dieser Debian Bug aus 2014 wieder aufgetaucht. Da habe ich ad hoc keinen Lösungsvorschlag für. Laut Bugreport soll man systemd-shim deinistallieren können und das würde das Problem lösen. Allerdings lässt mich apt das Package nicht purgen, da es erst systemd upgraden will.

Link zu diesem Kommentar
Share on other sites

Ja, Video :0 ist gesetzt, genau wie abgebildet.

 

Das apt-get-Problem ist lästig. Ich wollte nun wenigstens mal TightVNC installieren -- geht nicht.

"The following packages have unmet dependencies:

libpam-systemd : Depends: systemd (= 215-11) but 215-10 is to be installed

systemd : Depends: libsystemd0 (= 215-10) but 215-11 is to be installed

E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."

Die -f Option führt allerdings auch in eine Sackgasse.

 

Hm. Vielleicht zurück auf Image 1.3?

 

 

 

Link zu diesem Kommentar
Share on other sites

uh, ich denke schon ... wenn ich "X" am prompt eingebe, bekomme ich die mitteilung, dass  der server "active for display 0" ist.

den desktop hab ich in den services aktiviert, und ich seh ihn auch auf dem monitor. falls das nicht ausreichen sollte, bitte ich um weitere hinweise, wie das mit GUI-Apps funktionieren soll.

systemd usw dank deiner hilfe erfolgreich entfernt...

Link zu diesem Kommentar
Share on other sites

  • 4 weeks later...

Ich hatte ebenfalls bei der Installation von neuen Paketen das Abhängigkeitsproblem:

 

"The following packages have unmet dependencies:

libpam-systemd : Depends: systemd (= 215-12) but 215-10 is to be installed

systemd : Depends: libsystemd0 (= 215-10) but 215-12 is to be installed  ..."

 

und habe dann per dpkg "systemd-shim" deinstalliert. Nach einem Reboot funktioniert dann allerdings die Serielle Konsole nicht mehr!

 

Re-installation von "systemd-shim" beseitigt dieses Problem wieder und /dev/ttyACM0 taucht wieder auf - so ganz überflüssig ist systemd-shim ("This package emulates the systemd function that are required to run the systemd helpers without using the init service") wohl doch nicht...

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...