Найти - Пользователи
Полная версия: Помогите разобраться с pygtk
Начало » GUI » Помогите разобраться с pygtk
1 2
DarkVortex
Здравствуйте. Пишу небольшую прогу с графическим интерфейсом. Сколько не искал нормальной документации по pygtk не нашел( на английском крайне туго идет(
Как к форме прикрутить кнопку по нажатию на которую текст из формы будет занесен в определенную переменную. или несколько форм к одной кнопке, не могу с этим разобраться( нет ли где описания функционала pygtk?
DarkVortex
благодарю всех кто за целый день так ничего и не ответил, разобрался сам на примере кучки исходников…дохлый форум о живом языке…
vvl69
button.connect(“clicked”, “здесь название функции которая прочитает данные и сохранит в переменную” ,“здесь данные которые нужно сохранить”)
button.connect(“clicked”,myfunction,data)
http://pygtk.org/pygtk2tutorial/ch-ButtonWidget.html
можно перевод в яндексе или в гугле

соответственно функция

button.connect(“clicked”,myfunction,data)

def myfunction(button, data):
myvar = data

если data это entry:
myvar = data.get_text() или button.connect(“clicked”,myfunction, entry.get_text())
DarkVortex
да я уже разобрался)
DarkVortex
теперь с treeview мучаюсь)
m.meehalkoff
DarkVortex
теперь с treeview мучаюсь)
Ничего сложного на самом деле нет. Вот пример treeview:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk

class GUI:
# обработчик закрытия приложения
def delete_event(self, widget, event, data = None):
gtk.main_quit()

def __init__(self):
# создаем главное окно
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_size_request(300,300)
# присоединяем обработчик события "закрытие окна"
self.window.connect("delete_event", self.delete_event)
# создаем упаковщик
self.vbox = gtk.VBox()
# помещаем его в главное окно
self.window.add(self.vbox)
# создаем кнопку
self.btn = gtk.Button("Заполнить")
self.btn.connect("clicked",self.add_to_model)
# помещаем кнопку в упаковку
self.vbox.pack_start(self.btn)
# создаем модель на два столбца с типом string
self.model = gtk.ListStore(str, str)
# создаем treeview с этой моделью
self.treeview = gtk.TreeView(model = self.model)
# добавляем его в упаковку
self.vbox.pack_start(self.treeview)
# создаем колонки для таблицы
self.renderer = gtk.CellRendererText()
self.column0 = gtk.TreeViewColumn("Столбец 1", self.renderer, text=0)
self.column1 = gtk.TreeViewColumn("Столбец 2", self.renderer, text=1)
self.column0.set_expand(True)
self.column1.set_expand(True)
self.treeview.append_column(self.column0)
self.treeview.append_column(self.column1)
# показываем главное окно
self.window.show_all()

# обрабатывает клик по кнопке "Заполнить"
def add_to_model(self, widget, data = None):
# генерируем какие-нибудь значения для таблицы
for i in range(10):
val1 = "#%s" % i
val2 = "Значение%s" % i
# вставляем данные в модель
self.model.append([val1,val2])

if __name__ == "__main__":
app = GUI()
gtk.main()
С английским у меня тоже довольно туго, но разобраться с документацией pygtk получилось.
Рекомендую почитать. Там все понятно и с примерами кода.
http://www.pygtk.org/pygtk2tutorial/index.html

P.S. На русском документации по pygtk нет.
DarkVortex
пару дней назад и с этим разобрался) теперь с несколькими окнами мучаюсь( когда закрываю второстепенное окно, и открываю его снова оно пустое( как тут быть?
DarkVortex
может есть кто ответит на всю мою кучу вопросов напишите пожалуйста в асю: 92141814
DarkVortex
ковырял исходники pygmy понял что к сигналу delete-event надо привязать функцию со скрытием окна self.msg_window.hide(). Но когда вызываю self.msg_window.show() окно уже пустое(
DarkVortex
В общем пишу я почтовый клиент, в питоне можно сказать любитель. организовываю все в 3 класса smtp - отправка почты, pop - получение почты и gui - весь интерфейс который работает с 2 другими классами. или лучше под каждое окно сделать свой класс? и еще все виджеты лучше запихать в один файл или несколько файлов делать, в каждом по окну…мне почемуто кажется второй вариант…думаю и проблема исчезнет(ушел эксперементировать)
———
пустое окно и хоть ты расшибись(
———
толи лыжи неедут толи я не понял как работает этот гтк
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB