Also, hauptsächlich, da sich dadurch eben unzählige andere Probleme ergeben und ich die Klasse wieder umschreiben muss. Fängt mit der Kleinigkeit an, dass man etwas umständlicher an die Box kommt (get_content_area). Aber das Hauptproblem, welches ich gerade habe ist, dass meine Textbox nicht angezeigt wird. Kleines Zusatzproblem ist, dass ist dem Dialog ein Widget mitgeben muss, beispielsweise Gtk.MessageType.INFO und dafür ein Icon angezeigt wird, welches Platz weg nimmt. Also ganz so einfach ist es leider nicht, ich versuche es ja schon seit einer ganzen Weile
Also, ich habe meine Klasse MyTextbox welche im Dialog nicht angezeigt wird (Strich in der Mitte):
Code: Alles auswählen
class MyTextbox(Gtk.VBox):
def __init__(self, spacing=5, border_width=5):
Gtk.Box.__init__(self, spacing=spacing, border_width=border_width)
scrolledwindow = Gtk.ScrolledWindow()
scrolledwindow.set_policy(Gtk.PolicyType.ALWAYS,
Gtk.PolicyType.ALWAYS)
scrolledwindow.set_hexpand(True)
scrolledwindow.set_vexpand(True)
self.add(scrolledwindow)
self.textview = Gtk.TextView()
scrolledwindow.add(self.textview)
self.textbuffer = self.textview.get_buffer()
self.textview.set_wrap_mode(Gtk.WrapMode.WORD)
class EditDialog(Gtk.MessageDialog):
def __init__(self,
title="EditDialog",
parent=None,
flags=None,
widget=Gtk.MessageType.INFO,
response_buttons=[],
text="",
icon=None,
border_width=10,
spacing=2
):
dialog = Gtk.MessageDialog.__init__(
self,
parent,
flags,
widget,
response_buttons,
text,
icon
)
self.box = self.get_content_area()
self.box.set_spacing(spacing)
parent = self.box.get_parent()
parent.set_border_width(border_width)
def get_response(self):
return = self.run()
print (Gtk.ResponseType(response).value_nick, Gtk.ResponseType(response))
return response
class MailTemplateWindow(EditDialog):
def __init__(self, template=None, parent=None):
EditDialog.__init__(self, title="MailTemplateWindow", parent=parent)
newbox = Gtk.VBox()
self.subject_entry = Gtk.Entry(placeholder_text="Email Subject")
newbox.pack_start(self.subject_entry, False, False, 0)
self.textbox = MyTextbox()
newbox.pack_start(self.textbox, True, True, 0)
self.template_name_entry = Gtk.Entry(placeholder_text="Template Name")
newbox.pack_start(self.template_name_entry, False, False, 0)
save_button = Gtk.Button.new_from_stock(Gtk.STOCK_SAVE)
save_button.connect("clicked", self.on_save_button_clicked)
newbox.pack_start(save_button, False, False, 0)
self.box.pack_start(newbox, True, True, 0)
self.show_all()