#!/usr/bin/env python
# --*-- coding:utf-8 --*--
# example packbox.py
import gi
gi.require_version('Gtk', '3.0')
#from gi.repository.Gtk import *
import gi.repository.Gtk as gtk
class Table:
# Наш callback.
# Данные передаваемые этому методу выводятся в stdout
def callback(self, widget, data=None):
print("Привет снова - %s была нажата" % data)
# Этот callback завершает программу
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
# Создаём новое окно
self.window = gtk.Window()
# Устанавливаем заголовок окна
self.window.set_title("Table")
# Устанавливаем обработчик для delete_event, который немедленно
# Завершает работу GTK.
self.window.connect("delete_event", self.delete_event)
# Устанавливаем границу для окна
self.window.set_border_width(20)
# Создаём таблицу 2х2
table = gtk.Table(2, 2, True)
# Размещаем таблицу в главном окне
self.window.add(table)
# Создаём первую кнопку
button = gtk.Button("кнопка 1")
# По нажатии кнопки мы вызываем метод "callback"
# с указателем на "кнопка 1" в виде аргумента
button.connect("clicked", self.callback, "кнопка 1")
# Вставляем кнопку 1 в верхнюю левую ячейку таблицы
table.attach(button, 0, 1, 0, 1)
button.show()
# Создаём вторую кнопку
button = gtk.Button("кнопка 2")
# По нажатию кнопки мы вызываем метод "callback"
# с указателем на "кнопка 2" как аргумент
button.connect("clicked", self.callback, "кнопка 2")
# Вставляем кнопку 2 в верхнюю правую ячейку таблицы.
table.attach(button, 1, 2, 0, 1)
button.show()
# Создаём кнопку "Выход"
button = gtk.Button("Выход")
# Когда кнопка нажата, мы вызываем функцию main_quit
# и программа завершает свою работу
button.connect("clicked", lambda w: gtk.main_quit())
# Вставляем кнопку выхода в 2 нижние ячейки.
table.attach(button, 0, 2, 1, 2)
button.show()
table.show()
self.window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
Table()
main()