morris555's diary

高校生のブログです。

python de Gtk+3 #10

ダイアログをやってみましょう。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from gi.repository import Gtk

class DialogWindow(Gtk.Dialog):
    def __init__(self, parent):
        Gtk.Dialog.__init__(self, u'Dialog', parent, 0,
            (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
             Gtk.STOCK_OK, Gtk.ResponseType.OK))

        label = Gtk.Label(u'This is a Dialog.')

        self.get_content_area().add(label)
        self.show_all()

class MainWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title=u'Dialog')

        button = Gtk.Button(u'Dialog')
        button.connect('clicked', self.on_button_clicked)

        self.add(button)
        self.connect('delete-event', Gtk.main_quit)
        self.show_all()

    def on_button_clicked(self, widget):
        dialog = DialogWindow(self)
        response = dialog.run()   

        if response == Gtk.ResponseType.OK:
            print u'OK'
        elif response == Gtk.ResponseType.CANCEL:
            print u'CANCEL'

        dialog.destroy()

if __name__== '__main__':
    MainWindow()
    Gtk.main()

ダイアログボタンを押すと、ダイアログが出ます…それだけ。

追記

ダイアログには種類があって、上でやったの以外にメッセージダイアログとか、よくあるファイルを選択するダイアログとかもあるっぽいですww

ダイアログについては、後日もう一度まとめてやろうと思ってます。