Seite 1 von 1

TextBox und Zwischenablage

Verfasst: Montag 20. September 2004, 11:46
von Andreas.sinkel
Hallo Leute,
ich habe folgende Frage:
kann ich einen Text, den ich zuvor in die Zwischenablage kopiert habe(z.B. aus Word), in eine Tkinter-Textbox einfügen? Gibt es in Tkinter sowas wie Clipboard-Objekt?

Verfasst: Montag 20. September 2004, 13:49
von Dookie
Hi andreas,

es gibt eine clipboard_append Funktion in Tkinter, um Text ins Clipboard zu schreiben.
Zum Einfügen des Inhalts der Zwischenablage in eine Textbox würd ich mal [strg]+[v] versuchen.


Gruß

Dookie

Verfasst: Dienstag 21. September 2004, 07:26
von Andreas.sinkel
Hi Dookie,

vielen Dank für deine Antwort. <Strg>+ V ist natürlich auch eine Möglichkeit. Mein Programm ist aber an blutige Anfänger gerichtet, die mit Tastenkombinationen wenig anfangen können. Deswegen wollte ich eine Kopier-Funktion schreiben, die durch einen Button- oder Menu-Klick aufgerufen wird. Mittlerweile habe ich eine Lösung, welche allerdings wxPython voraussetzt:

Code: Alles auswählen

import wx
def einfuegen():
    meinTextObject=wx.TextDataObject()
    wx.TheClipboard.Open()
    wx.TheClipboard.GetData(meinTextObject)
    wx.TheClipboard.Close()
    meineTextBox.insert(END, meinTextObject.GetText())
Wie gesagt, der Nachteil dieser Lösung ist, dass sie nur mit dem installierten wxPython funktioniert. Ich hoffe, dass es auch mit Tkinter geht.
Ist es eigentlich möglich, eine Tastenkombination zu "simulieren"... ich meine dem Tkinter aus dem Quellcode heraus zu befehlen, die Operation durchzuführen, die normalerweise durch eine Tastenkombination aktiviert wird?

Verfasst: Dienstag 21. September 2004, 11:55
von Dookie
Hi Andreas,

hab da was gefunden zum Zugriff auf das Windows-Clipboard.
http://margaretmorgan.com/wesley/python/

Gruß

Dookie

Verfasst: Dienstag 21. September 2004, 12:50
von Andreas.sinkel
Danke!

Verfasst: Donnerstag 23. September 2004, 15:21
von Andreas.sinkel
Über die Forum-Suche habe ich einen interessanten Beitrag gefunden. Der Autor(Gast) meint, dass man den Inhalt der Zwischenablage mit .selection_get("Clipboard") abfragen kann. Weiß jemand von euch, was Gast meint? So eine Funktion finde ich in keiner Dokumentation. selection_get() ohne Argumente wird ja verwendet, um die Auswahl in einer Entry oder TextBox zurückzugeben. Aber .selection_get("Clipboard")? Hmm...

Re: TextBox und Zwischenablage

Verfasst: Dienstag 11. April 2006, 19:09
von Michael Schneider
Andreas.sinkel hat geschrieben:Hallo Leute,
ich habe folgende Frage:
kann ich einen Text, den ich zuvor in die Zwischenablage kopiert habe(z.B. aus Word), in eine Tkinter-Textbox einfügen? Gibt es in Tkinter sowas wie Clipboard-Objekt?
Hallo Andreas,

ein Clipboard-Objekt kenne ich nicht, aber Du kannst unter UNIX-Derivaten die SELECTION verwenden, um auf markierten Text zuzugreifen. Doch Deine eigentliche Frage war, wie man auf die Zwischenablage zugreifen kann. Dafür gibt es eine sehr einfach Lösung:

"Das Python-Buch" (Auflage '97 wohlgemerkt) empfiehlt auf Seite 217:
Das Python-Buch hat geschrieben:Der Folgende Aufruf gibt Ihnen den Inhalt des
Clipboards als String zurück:

:arrow: entry.selection_get(selection="CLIPBOARD")
Praktisch angewendet bedeutet das folgendes:

Code: Alles auswählen

import Tkinter as TK
text = TK.Text()
text.insert("1.0", text.selection_get(selection="CLIPBOARD"))
text.grid()
text.mainloop()
Wenn Du den Code ausführst, wird der Inhalt der Zwischenablage im text-Feld angezeigt. :D

Übrigens, "Das Python-Buch" (Löwis/Fischbeck) ist für Anfänger ebenso zu empfehlen wie für Fortgeschrittene, auch wenn es nicht mehr ganz up-to-date ist!

Michael

p.s. Ich bekomme keine Tantiemen! :wink: