Topic: Dbus finestre  (Letto 774 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Ryosaeba

Dbus finestre
« il: Maggio 11, 2014, 10:31 »
Ciao,
 spero di essere nella sezione giusta per il mio problema.
Il problema è nato da quando ho installato kubuntu 14.04 LTS, prima che avevo kubuntu 12 mi funzionava tutto.

Ho fatto un programma in Python che automaticamente all'avvio sposta le finestre della konsole e di konqueror in un certa posizione dello schermo usando nella programmazione i seguenti comandi:

[codice]'org.kde.konsole', '/konsole/MainWindow_1' 
'org.freedesktop.DBus.Properties'
'com.trolltech.Qt.QWidget',  'geometry' 
[/codice]
Adesso invece mi viene il seguente errore:

[codice] File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
    **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownInterface: Interface com.trolltech.Qt.QWidget was not found in object /konsole/MainWindow_1[/codice]

L'errore ha cominciato a verificarsi dalle versioni successive di kubuntu 12 , ho fatto ricerche ma senza capire che cosa fosse cambiato in kubuntu, ma non ho trovato molto su questo errore...

Se qualcuno sà qualsiasi cosa che riguarda il dbus per lo spostamento delle finestre che me lo dica perchè stò impazzendo...
o in quale sezione del forum mi devo rivolgere....
 
Il codice che ho scritto e funzionante fino alla versione kubuntu 12.04LTS è il seguente:

[codice]
class TheApp:
    def __init__(self):
        ilSessionBus = dbus.SessionBus()
           
        self._obj = ilSessionBus.get_object('org.kde.konsole', '/konsole/MainWindow_1')       

    def mettiInPrimoPiano(self):
        iface = dbus.Interface(self._obj, dbus_interface='com.trolltech.Qt.QWidget')
        iface.hide()
        iface.show()

    def setGeometry(self, x,y, w,h):
        ifaceProp = dbus.Interface(self._obj, dbus_interface='org.freedesktop.DBus.Properties')
        ifaceProp.Set('com.trolltech.Qt.QWidget',
                      'geometry',
                      dbus.Array([x, y, w, h], variant_level=1))

    def getGeometry(self):
        ifaceProp = dbus.Interface(self._obj, dbus_interface='org.freedesktop.DBus.Properties')
        return ifaceProp.Get('com.trolltech.Qt.QWidget', 'geometry')

    def posiziona(self):
        pass
        self.setGeometry(35, 47, 850, 520)
[/codice]

Offline pestatasti

  • python neanderthalensis
  • ****
  • Post: 405
  • Punti reputazione: 0
    • Mostra profilo
Re: Dbus finestre
« Risposta #1 il: Maggio 11, 2014, 16:29 »
Io ho il sospetto che da QT sia diventato QT4.
Prova una utility che indaga sul Dbus, quanti servers ci sono.

Ryosaeba

Re:Dbus finestre
« Risposta #2 il: Maggio 15, 2018, 08:56 »
o