IBUS-WARNING beim Verwenden von Qt

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Joshua Behrens
User
Beiträge: 6
Registriert: Dienstag 19. Oktober 2010, 19:04
Wohnort: /usr/home/josh/
Kontaktdaten:

Hallo Python-Community,

ich arbeite zZ mit Qt und habe schon ein Programm geschrieben, was eine XML-Datei anzeigen soll. Jetzt habe ich das ganze um ein paar Dialoge erweitert um die XML-Datei vom Programm aus zu editieren. Doch ich krieg meinen Hauptdialog nicht zum Laufen. Immer wenn ich auf den Button klicke für den Dialog, kommt in der Taskleiste kurz der Dialog und dann kommt folgende Meldung (im Terminal):
(<unknown>:21257): IBUS-WARNING **: Connect to unix:abstract=/tmp/dbus-EkmCXrHS50,guid=c2a6d5412d9c8a5077f1275a4c74c621 failed: Failed to connect to socket /tmp/dbus-EkmCXrHS50: Connection refused.
Der Code an der Stelle (es wurde keine Zeile angegeben, aber das sollte eigentlich ausgeführt werden):

Code: Alles auswählen

dlg = ValuesDlg()
dlg.show()
Mit den meisten Fehlermeldungen kann ich ja etwas anfangen oder lassen sich durchs googeln lösen, aber darüber habe ich nichts rausbekommen. Wenn ihr eine bestimmte Codestelle braucht müsst ihr das sagen (setupUi, ...).

Danke schon mal im Vorraus
Grüße, Joshua Behrens
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also mit dem Code kann man nicht viel anfangen. Eine Fehlermeldung mit "dbus" klingt aber irgend wie komisch. Auf was für eine Datei greifst Du denn da zu? Oder machst Du sonst explizit etwas mit dbus?

Generelle Frage: Wieso überhaupt verwendest Du einen Dialog als Hauptelement? Imho doch eher ungewöhnlich...

Desweiteren: Ab wann trat denn der Fehler auf? Du schriebst ja etwas von "erweitert". Also impliziere ich mal, dass diese Meldung "neu" ist? Evtl. kannst Du die Änderungen rückgängig machen (falls Du ein VCS verwendest, wäre das jetzt ein Kinderspiel) und somit das "delta" zwischen der funktionierenden und der nicht mehr funktionierenden Version verkleinern!

Sollte es ohne Änderungen am Code zu der Meldung kommen: Hast Du evtl. irgend ein Update eingespielt, was dafür verantwortlich sein könnte?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Joshua Behrens
User
Beiträge: 6
Registriert: Dienstag 19. Oktober 2010, 19:04
Wohnort: /usr/home/josh/
Kontaktdaten:

Ich weiß, dass man mit dem Code nichts anfangen kann. Ich wollte nur zeigen, dass ich nur einen Dialog öffne und mehr nicht.
dbus sagt mir so nichts. Und ich wüsste nicht, dass ich irgendwas mit "Bus" verwende.
Also ich greife zu auf :

Code: Alles auswählen

from PyQt4 import QtCore, QtGui
import sys
import xml.dom.minidom
und auf eine xml-Datei im selben Ordner

Ich 'nen mein Hauptfenster immer MainFrm (Angewohnheit aus VB.Net) und alles andere was Modal ist XXXDlg. In diesem Fall ist der Dialog ja nicht, dass Hauptfenster. Er kommt nach meiner Hauptform.

Ja, ich habe erweitert (und das im großen Stil). Aus dem Anfangsprojekt (nur ne XML auswerten und dementsprechend was anzeigen mit 178 Zeilen) habe ich mit zwei Dialogen aufgearbeitet auf 487 Zeilen Code. Und das ist mein 1. Test des Neuen (das Alte habe ich noch in 'nem anderen Ordner). Das Problem ist bei dem Alten nicht aufgekommen und funktioniert perfekt. Anhand der Zeilenanzahl ist Delta leider ziemlich groß.
Was soll ein VCS sein ? Ich arbeite mit gEdit und dem Terminal (python -d file).

Ein Update mach ich nur wöchentlich(Freitags) und das Projekt habe ich am WE angefangen. Sollte somit nicht der Fall sein.

Was mir aber aufgefallen ist, dass heute plötzlich mein Design spinnte. Es war auf einmal Windows NT-like und nicht mehr in dem chicken grau-braun. Dann habe ich die Designeinstellungen geöffnet, dann wurden die Fenster und Panel wieder normal. Der Dateibrowser hat grad noch Macken mitm Design.
Grüße, Joshua Behrens
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du arbeitest auch noch unter Windows? Hm... wird ja immer merkwürdiger. Also das wird schwer, den Fehler zu finden. Du könntest das Beispiel ja mal in einem Paste-Bin posten, dann können wir es selber mal lokal ausprobieren.

Ansonsten würde ich an Deiner Stelle versuchen, den genauen Ort im Code ausfindig zu machen, an der der Fehler auftritt. (Also ggf. direkt beim Öffnen eines Dialoges?) Kommentiere einfach mal alles aus und langsam wieder rein, bis der Fehler auftritt. ggf. kann man diese Minimal-Version dann auch besser hier posten. (Also im Paste-Bin)

Zudem könntest Du ggf. mal ein neues Mini-Projekt anlegen, in dem Du eigentlich nichts weiter machst, als auf die selbe Art und Weise einen Dialog zu öffnen. Wenn der Fehler da auch kommt, findet man ggf. die Ursache leichter.

Und Du bist sicher, dass Du kein Update (Von Python oder gar Qt selber) eingespielt hast?

VCS = Versionsverwaltung (http://de.wikipedia.org/wiki/Versionsverwaltung) Sehr feine Sache beim Programmieren. Hier im Forum sind Mercurial und git sehr beliebt. Auch für Kleinigkeiten - genau hier wäre es eben toll, so lange in der Historie zurückzugehen, bis man die Fehler freie Version gefunden hat.

Kleiner Tipp noch: Vergiss minidom! Nutze lieber die ElementTree API aus der Standard-Lib, oder ggf. sogar lxml oder - bei der Verwendung von PyQt4 - die XML-Module aus Qt4.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Joshua Behrens
User
Beiträge: 6
Registriert: Dienstag 19. Oktober 2010, 19:04
Wohnort: /usr/home/josh/
Kontaktdaten:

Nein, ich arbeite nicht unter Windows. Ich bin Unix-Einsteiger und arbeite mit Python unter Ubuntu 10.04 Lucid Lynx. Und um Python zu lernen (und unter Windows gleichzeitig XML) habe ich mir gedacht ich mach ein kleines Projekt für beide Systeme zu machen. MiniDom bot sich hier halt an, da der Aufbau (nicht exakt), aber sehr dem von System.XML entsprach. Aber das spielt hier ja keine Rolle (mehr dazu findet ihr dort: http://forum.vb-paradise.de/sonstiges/s ... chner-1-2/).

Das mit dem Extraprojekt und dem Rauskommentieren werd ich mal ausprobieren.

Dann werd ich mir mal Mercurial aneignen. Klingt gut sowas mal einzurichten :wink: Bis jetzt habe ich mir das immer selber gemacht mit verschiedenen Unterordnern etc.
Nach dem ich Mercurial installiert hab werd ich dann mal Neustarten. Evtl. bringt das etwas.
Grüße, Joshua Behrens
Joshua Behrens
User
Beiträge: 6
Registriert: Dienstag 19. Oktober 2010, 19:04
Wohnort: /usr/home/josh/
Kontaktdaten:

Nach dem Neustarten kommt die IBUS-Warning nich mehr. Die Dialoge lassen sich einzeln Öffnen, aber nicht untereinander. Wie lässt sich das lösen ?
Grüße, Joshua Behrens
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Joshua Behrens hat geschrieben:Nach dem Neustarten kommt die IBUS-Warning nich mehr. Die Dialoge lassen sich einzeln Öffnen, aber nicht untereinander. Wie lässt sich das lösen ?
Neue Frage neuer Thread ;-)

Zudem: Hä? Ich kapiere aus dieser Beschreibung Dein Problem nicht wirklich. Ohne Quellcode und ggf. lauffähiges Minimalbeispiel kann man Dir nicht helfen. Nebenbei bringt es nicht viel, Python-Scripte als "Closed"-Source bereit zu stellen; Nimm eben eine Lizenz, die die Verwendung der Sourcen unterbindet? Zudem sollte ein reiner import-Aufruf kein Programm starten können... und *-Importe sind eh immer schlecht ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Joshua Behrens
User
Beiträge: 6
Registriert: Dienstag 19. Oktober 2010, 19:04
Wohnort: /usr/home/josh/
Kontaktdaten:

Auch wenn das jetzt unmotiviert rüber kommt: Ich habe das Linuxprojekt aufgegeben. Ich werde das für Linux mit Pascal(Lazarus) machen. Damit weiß ich wenigstens, wie das geht (durch Delphi 7), aber ihr kriegt von mir ein dickes Lob: Nicht jedes Forum ist auf Anhieb so hilfsbereit 8) Wenn ich wieder mit Python mal was mache, meld ich mich wieder.

Wegen der Lizenz : ich nehm als Lizenz immer Creative Commons http://creativecommons.org/licenses/by-nc-nd/3.0/de/.
Grüße, Joshua Behrens
BlackJack

@Joshua Behrens: Die Creative Commons Lizenzen sind aber nicht wirklich gut für Programme geeignet. Die wurde doch für Werke geschaffen für die im Gegenzug die üblichen Lizenzen für Programme nicht geeignet sind.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Joshua Behrens
User
Beiträge: 6
Registriert: Dienstag 19. Oktober 2010, 19:04
Wohnort: /usr/home/josh/
Kontaktdaten:

Nein :|
Werd ich mich wohl mit ausseinander setzen müssen
Grüße, Joshua Behrens
Antworten