Hi.
Ist es möglich, in Python mit einem GUI Toolkit eine RTF-Textbox darzustellen? Mit dem HTML Kram von Qt komme ich einfach nicht klar.
~ Chris
Python GUI mit RTF?
Hi,
eine Textbox in Tkinter ginge z.B. so:
Wie Du RTF-Texte da reinkriegst, weiß ich aber nicht.
Reicht Dir das so ?
Gruß
eine Textbox in Tkinter ginge z.B. so:
Code: Alles auswählen
#!/usr/bin/env python
import Tkinter
import tkMessageBox
from Tkconstants import *
class myWindow:
def __init__(self):
self.mw = Tkinter.Tk()
self.mw.option_add("*font", ("Arial", 15, "normal"))
self.mw.geometry("+250+200")
self.mw.title("Text-Field-Demonstration")
self.tfield = Tkinter.Text(self.mw,
font = "{Courier} 15 {normal}",
width = 82,
height = 20,
background = 'white',
foreground = 'black')
self.tfield.pack()
self.tfield.insert(END, "Hello from inside the Text-widget.\n\nIf you click on it once, you can edit this text.")
self.fr = Tkinter.Frame(self.mw)
self.btn1 = Tkinter.Button(self.fr, text = "Show contents", command = self.Contents)
self.btn2 = Tkinter.Button(self.fr, text = "Clear text-field", command = self.clearField)
self.btn3 = Tkinter.Button(self.fr, text = "Exit", command = self.mw.destroy)
self.btn1.pack(side = LEFT, padx = 20)
self.btn3.pack(side = RIGHT, padx = 20)
self.btn2.pack(padx = 20)
self.fr.pack(pady = 10)
self.mw.mainloop()
def Contents(self):
msg = "The text-field contains right now:\n\n"
msg += self.tfield.get("1.0", END) + "\n"
tkMessageBox.showinfo(title = 'Text-field-Contents', message = msg)
def clearField(self):
self.tfield.delete("1.0", END)
if __name__ == "__main__":
app = myWindow()
Reicht Dir das so ?
Gruß
Dafür muss es wohl ein entsprechendes Widget sein. Ich bin ziemlich sicher, sowas in der wx-Demo-Applikation gesehen zu haben. Andere wichtige GUI-Toolkits sollten das auch bieten, wobei einige das möglicherweise mit HTML-Widgets abdecken wollen. Einen RTF-zu-HTML-Konverter sollte man jedoch auch leicht finden können, wenn man diesen Weg denn beschreiten will/muss.
-
- User
- Beiträge: 221
- Registriert: Sonntag 1. Juni 2008, 09:08
Hi.
Wie ich eine einfache Textbox hin bekomme weiß ich auch selber
@ Yogi, jo, irgendwo habe ich das auch schon einmal gesehen. Aber eigentlich war das nur meine Absicht, es mit RTF zu machen, da es doch sicherlich schneller ist, als jedesmal den kompletten HTML kram zu parsen, oder?
~ Chris
Wie ich eine einfache Textbox hin bekomme weiß ich auch selber
@ Yogi, jo, irgendwo habe ich das auch schon einmal gesehen. Aber eigentlich war das nur meine Absicht, es mit RTF zu machen, da es doch sicherlich schneller ist, als jedesmal den kompletten HTML kram zu parsen, oder?
~ Chris
Grüßle.
RTF ist auch eine Art Auszeichnungssprache die geparst werden muss. Das macht nicht viel Unterschied. Da finde ich HTML ehrlich gesagt einfacher.
Wenn ich das richtig in Erinnerung hat gibt es bei wxWidgets aber eine RTF fähige Komponente. Oder war das Scintilla? Die gibts auch bei Qt. Dann viel Spaß beim Einrichten
Wenn ich das richtig in Erinnerung hat gibt es bei wxWidgets aber eine RTF fähige Komponente. Oder war das Scintilla? Die gibts auch bei Qt. Dann viel Spaß beim Einrichten
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
wxwidgets bietet eine RichTextCtrl.
-
- User
- Beiträge: 221
- Registriert: Sonntag 1. Juni 2008, 09:08
Achso, naja dachte immer
Dann mach ich's doch mit HTML!
Danke
~ Chris
Dann mach ich's doch mit HTML!
Danke
~ Chris
Grüßle.
Nun, wenn deine Quelldaten RTF sind, ist es sicher schneller, die in einem RTF-Widget darstellen zu lassen als die erst noch in HTML zu verwandeln. Zudem vermute ich, dass RTF einfacher (= schneller) zu parsen ist.
So etwas sollte man nicht vermuten sondern messen. Aber egal welcher Parser da vorne liegen mag, möchte ich mal die Textmenge sehen, ab der dieser Unterschied in einer GUI relevant wird.
Vorteil bei HTML: Das können sicher mehr Leute ohne WYSIWYG-Anwendung lesen und schreiben als RTF.
Vorteil bei HTML: Das können sicher mehr Leute ohne WYSIWYG-Anwendung lesen und schreiben als RTF.