2011-12-13 8 views
9

I programmi Gtk possono avere diversi temi per la rilegatura associando chiavi diverse ai segnali gtk, ma afaik, i programmi qt non possono farlo ora.È possibile implementare le combinazioni di tasti in stile emacs in tutti i programmi Qt (probabilmente come un plugin qt)?

Poiché Qt supporta i plug-in (come la maggior parte di questo tipo di libreria, e ciò che intendo qui è Plugin di alto livello o Estensione Qt) e almeno alcuni di essi (Plugin di alto livello) possono essere caricati automaticamente da tutti i programmi qt secondo sth come ENV, è possibile avere combinazioni di tasti globali (Emacs o altri stili) (almeno in tutte le aree di input) usando il plugin qt? O in altre parole, qualcuno sa quale tipo di plugin (di alto livello) dovrebbe essere?

La mia ipotesi è un plug-in inputcontext o un plug-in accessibile (bridge). Per il plugin di contesto di input, mi chiedo se questo può funzionare con il metodo di input poiché afaik può essere abilitato solo un backend di inputmethod in una volta. Per il plugin accessibile, non ho trovato come farlo caricare automaticamente.

Grazie.

risposta

1

È possibile effettuare il install an event filter per intercettare gli eventi chiave e utilizzarli per convertirli in other events.

Penso che tu stia usando la parola "plug-in" in un altro senso a Qt. Ha vari plugin specifici - per i codec di immagine, i driver SQL, ecc. - ma nessun meccanismo "do this to all widgets" per tutti gli scopi. Per fare ciò, dovresti catturare tutti i punti di creazione dei widget di livello superiore nell'applicazione e aggiungere codice per installare il filtro per ogni caso.

+0

E allora la parte di carico? (Non ho trovato alcun documento su come Qt decida di caricare questi plugin ~~~) – yuyichao

+0

Anche se le estensioni SONO caricate nella maggior parte dei programmi qt (che ha casella di input) ma non in skype. Qualche ragione per quello? – yuyichao

+0

È ciò che intendo per "plug-in". (e la mia domanda è solo se c'è un tipo di plugin che posso usare.) Penso che probabilmente i plugin di accessibilità o inputcotext possano aiutare, ma non so come/quando questi plugin vengono caricati. In realtà sono abbastanza sicuro che un plugin inputcontext possa farlo (solo per il contesto di input) se non si sta usando alcun metodo di input. (btw, per skype è probabilmente perché skype non usa l'elemento qt standard ~~) – yuyichao

0

In qualche modo risolvo il problema (insieme a this one) utilizzando xkb, cioè reindirizza C-npfbae a chiavi corrette, anche se non l'ho fatto C-d redirection compatible with terminal EOF.

Continuo a pensare che il problema (in Qt) possa essere risolto con i plugin qtaccessible ma non ho trovato il modo di farlo funzionare.

+0

Hm, no, non è una soluzione molto buona ... Es. nello stesso Emacs sto usando «C-S-f» per spostare la selezione di un carattere in avanti. Ma ora le frecce sono libere, quindi ho legato a «S-AnArrow» un movimento tra gli schermi a fessura. Se avessi legato «C-S-f» a «S- →» per un livello di sistema, si romperebbe tutto. –

Problemi correlati