Я создаю программу в python с gtk как gui, используя поляну. В этой программе у меня есть несколько диалоговых окон сообщений. Это просто, если я просто создаю много диалогового окна сообщений для каждого случая, который у меня есть. Но можно ли просто создать диалог с одним сообщением и использовать его для разных случаев с другим текстом? На самом деле это просто. Мне просто нужно изменить основной текст и показать его. Но я не нахожу способ изменить основной текст here и here.Как изменить основной текст в gtk messagedialog в python?
Ниже приведен пример кода:
from gi.repository import Gtk
def clicked1(widget):
response = dialog1.run()
if response == Gtk.ResponseType.OK:
print 'ok'
else:
print 'cancel'
dialog1.destroy()
def clicked2(widget):
response = dialog2.run()
if response == Gtk.ResponseType.OK:
print 'ok'
else:
print 'cancel'
dialog2.destroy()
def clicked3(widget):
response = dialog3.run()
if response == Gtk.ResponseType.OK:
print 'ok'
else:
print 'cancel'
dialog3.destroy()
builder = Gtk.Builder()
builder.add_from_file('gui.glade')
dialog1 = builder.get_object('dialog1')
dialog2 = builder.get_object('dialog2')
dialog3 = builder.get_object('dialog3')
builder.get_object('button1').connect('clicked', clicked1)
builder.get_object('button2').connect('clicked', clicked2)
builder.get_object('button3').connect('clicked', clicked3)
builder.get_object('window1').show_all()
Gtk.main()
Я хочу изменить это быть что-то вроде этого
from gi.repository import Gtk
def clicked1(widget):
**dialog.set_text(1)**
response = dialog.run()
if response == Gtk.ResponseType.OK:
print 'ok'
else:
print 'cancel'
dialog.destroy()
def clicked2(widget):
**dialog.set_text(2)**
response = dialog.run()
if response == Gtk.ResponseType.OK:
print 'ok'
else:
print 'cancel'
dialog.destroy()
def clicked3(widget):
**dialog.set_text(3)**
response = dialog.run()
if response == Gtk.ResponseType.OK:
print 'ok'
else:
print 'cancel'
dialog.destroy()
builder = Gtk.Builder()
builder.add_from_file('gui.glade')
**dialog = builder.get_object('dialog')**
builder.get_object('button1').connect('clicked', clicked1)
builder.get_object('button2').connect('clicked', clicked2)
builder.get_object('button3').connect('clicked', clicked3)
builder.get_object('window1').show_all()
Gtk.main()
Я думаю, что это хорошо, спасибо за помощь :) – user2435611
Я нашел простой способ, используя 'gtk_message_dialog_get_message_area()', который возвращает поле, содержащее две метки. :) – LiuLang
и как получить доступ к основной текстовой метке? – user2435611