Problem mit der Zwischenablage (Linux)

Fragen zu Tkinter.
Antworten
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Als Tk(inter)-Anfänger experimentiere ich derzeit mit den verschiedenen Widgets.

Ich habe versucht, aus einem Text-Widget über die Zwischenablage mittels <Strg>-<C> bzw. <Strg>-<V> Text mit einer anderen Anwendung (z.B. einem Editor oder Textverarbeitungsprogramm) auszutauschen. In meiner normalen Arbeitsumgebung (Linux mit KDE) funktioniert das nur in eine Richtung, und zwar aus dem Text-Widget HERAUS. Das Einfügen von Text in das Text-Widget aus der Zwischenablage mittes <Strg>-<V> funktioniert nicht.

Zu Testzwecken habe ich unter wine noch eine weitere Python-Installation eingerichtet und das gleiche Skript auch über wine mit der Windows-Python-Version laufen lassen. Und siehe da: Hier funktioniert der Transfer über die Zwischenablage in beide Richtungen, und zwar sogar im Austausch mit nativen Linux-Anwendungen über die Emulator-Grenzen hinweg.

Wie lässt sich dieses (gewünschte) Verhalten auch unter Linux erreichen?

Und noch etwas ist mir aufgefallen: Es lässt sich im Text-Widget nicht vertikal navigieren. Ich kann nur mit den Cursortasten nach links oder rechts durch den Text gehen, aber nicht nach oben/unten. Das gilt für die Windows- wie für die Linux-Fassung. - Ist das normal? Kann man das abstellen?
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Wie du mit der Zwischenablage arbeiten kannst, wird hier erklärt.
Zum Text-Widget kann ich nichts sagen, bei mir (Windows) geht das (natürlich nur, wenn in beiden Zeilen auch Text steht).
BlackJack

Zur Navigation mit den Cursortasten: Kann es sein, dass das Text-Widget nur eine Zeile enthält, die zur Anzeige auf mehrere umgebrochen wird? Denn Cursor hoch/runter geht nur zeilenweise, bezogen auf die Originalzeilen.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

@schlangenbeschwörer:

Danke für den Link; ich hatten diesen Thread schon vorher gelesen, anderseits aber auch ganz ohne diese clipboard-Methoden einfach so ins Blaue hinein mal versuch, die üblichen Shortcuts in einem Text-Widget zu verwenden. Erstaunlicherweise - denn dokumentiert habe ich das noch nirgends gefunden - funktioniert das unter Windows ganz wie gewünscht, und zwar OHNE dass man irgendeine clipboard-Funktionalität extra implementieren muss!!! Einfach nur ein Text-Widget erstellen und die Funktionalität ist integriert. Super!

Unter Linux habe ich ebenfalls - ins Blaue hinein - weiter experimentiert, und siehe da, die Lösung ist einfach und sieht wie folgt aus:

Windows: <Strg>-<C> (kopieren), <Strg>-<V> (einfügen)
Linux: <Strg>-<C> (kopieren), <Strg>-<Y> (einfügen)

Schön ist das natürlich nicht, aber wenigstens funktioniert es. Um eine identische Tastenbelegung zu realisieren, dürfte der Weg über entsprechende Tastenbindungen und die clipboard-Methoden wohl nötig und möglich sein.
Alternativ könnte man natürlich über platform.system() das zugrunde liegende Betriebssystem ermitteln und dem Anwender die zu verwendenden Shortcuts mitteilen.

@BlackJack:
Es scheint wohl in der Tat so zu sein, dass sich <Up> und <Down> beim vertikalen Navigieren an Zeilenumbrüchen (\n) orientiert. Innerhalb eines mehrzeiligen Textes, der keinen Zeilenumbruch enthält, lässt sich nicht vertikal navigieren mit den Cursortasten. Ich habe auch keine andere Taste(nkombination) gefunden, mit der dies gelungen wäre.
el_bobo
User
Beiträge: 23
Registriert: Dienstag 15. Januar 2008, 02:11

BlackJack hat geschrieben:[...] Denn Cursor hoch/runter geht nur zeilenweise, bezogen auf die Originalzeilen.
Lässt sich das irgendwie auf die "gewohnte" (wie zum Beispiel hier im Forum-Post-Fenster) Verhaltensweise umstellen?

Gruß.
Antworten