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?
TextBox und Zwischenablage
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
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
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
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- User
- Beiträge: 15
- Registriert: Montag 20. September 2004, 11:40
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:
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?
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())
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?
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Andreas,
hab da was gefunden zum Zugriff auf das Windows-Clipboard.
http://margaretmorgan.com/wesley/python/
Gruß
Dookie
hab da was gefunden zum Zugriff auf das Windows-Clipboard.
http://margaretmorgan.com/wesley/python/
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- User
- Beiträge: 15
- Registriert: Montag 20. September 2004, 11:40
Ü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...
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Hallo Andreas,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?
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:
Praktisch angewendet bedeutet das folgendes:Das Python-Buch hat geschrieben:Der Folgende Aufruf gibt Ihnen den Inhalt des
Clipboards als String zurück:
entry.selection_get(selection="CLIPBOARD")
Code: Alles auswählen
import Tkinter as TK
text = TK.Text()
text.insert("1.0", text.selection_get(selection="CLIPBOARD"))
text.grid()
text.mainloop()
Ü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!
Diese Nachricht zersört sich in 5 Sekunden selbst ...