Найти - Пользователи
Полная версия: gtk.Entry
Начало » GUI » gtk.Entry
1
securelord
Занялся недавно построением интерфейса на Gtk.
Вопрос вот в чем - существует ли такое свойство для виджета Entry как ширина(или длина, как хотите)?
slav0nic
entry.set_size_request
а вообще-то поставь glade и смотри сишный код, догадаться что gtk_widget_set_size_request (entry1, 100, 20) в С == entry1.set_size_request (100,20) не так уж и сложно
securelord
Еще вопрос в догонку - можно ли используя entry.set_text(x) вместо x использовать переменную? Исходя из мануала, то нельзя. Может есть функция которая непосредственно делает то что нужно…
slav0nic
как это нельзя%)
securelord
Просто не получается, что бы заработала такая конструкция:
...
x = "entry"
entry.set_text(x)
...
slav0nic
ну полностью давай код, потыкаем
securelord
import pygtk
pygtk.require('2.0')
import gtk

class Pref:
def __init__(self):
def ok():
print “Ok”
def Apply():
print “Apply”

def changed(entry):
Entry.set_text(entry)


window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title(“Main - Inventar v0.1”)

table_pref = gtk.Table(rows=2, columns=3)
window.add(table_pref)

Entry=gtk.Entry()

combo = gtk.combo_box_entry_new_text()
window.add(combo)
combo.append_text('1')
combo.append_text('2')
combo.child.connect('changed', changed)
combo.set_active(0)

table_pref.attach(combo, 0, 1, 0, 1)
table_pref.attach(Entry, 1, 2, 0, 1)

Entry.show()
table_pref.show()
combo.show()

frame_prefDB = gtk.Frame()
table_pref.attach(frame_prefDB, 0, 1, 0, 1)
frame_prefDB.show()

frame_newDB = gtk.Frame()
table_pref.attach(frame_newDB,1, 2, 0, 1)
frame_newDB.show()

frame_user = gtk.Frame()
table_pref.attach(frame_user, 2, 3, 0, 1)
frame_user.show()

Hbox = gtk.HBox(spacing=10)
table_pref.attach(Hbox, 0, 3, 1, 2)

but_ok = gtk.Button(“Ok”)
but_ok.connect(“clicked”, ok)
but_clear = gtk.Button(“Apply”)
but_clear.connect(“clicked”, Apply)
but_cancel = gtk.Button(“Cancel”)
#but_cancel.connect(“clicked”, cancel)

Hbox.pack_start(but_ok)
Hbox.pack_start(but_clear)
Hbox.pack_start(but_cancel)

but_ok.show()
but_clear.show()
but_cancel.show()
Hbox.show()


table_pref.show()
window.show()

def main():
gtk.main()
return 0

if __name__ == “__main__”:
Pref()
main()
В скрипте нужно чтобы при выборе пункта в combobox'е текст должен отображаться в соседнем Entry
slav0nic
)ну ёпт, смотрим какую ошибку выдаёт:
File “G:\1.py”, line 13, in changed
Entry.set_text(entry)
TypeError: GtkEntry.set_text() argument 1 must be string, not gtk.Entry

и?) а ты передаёшь виджет, объект) а надо? а как сделать?
а наверн овот так:

def changed(entry):
Entry.set_text(entry.get_text())

в этом и вся прелесть в интерпретируемых языках, что они выводят много инфы об ошибке, а не тупо молча падают)
slav0nic
и смотри побольше examples и pygtk tutorial + pygtk faq и всё=( ничё больше нет, и при этом gtk “класическая гуи либа”, я вот парился как в табе кнопку закрыть присобачить и текст с картинкой и чтоб не через жопу, нашёл только в факе)
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