GTK+ (programovani)

Michal Hucik chaky na goliash.inext.cz
Čtvrtek Září 24 08:13:07 CEST 1998


Hi,
	omlouvam se za to ze je zde tato zprava mirne off-topic, ale
maillist o gtk na rak.isternet.sk je asi mrtvy a zadne jine misto, kde by
bylo mozne najit gtk guru a rozmlouvat s nim v rodnem jazyce neznam ...

1.) programuji neco v gtk, vzhledem k tomu, ze se jedna o pomerne velkou
aplikaci, tak sleduji i to, jak 'setrne' pracuje s pameti a narazil jsem na
nasledujici problem:

Mam otevrene nejake okno, pomoci 'ps m' muzu zjistit, ze aplikace zabira
2.2% pameti. Nyni kliknutim na nejaky option otevru dalsi okno (funkce pouze
vytvori widget a zobrazi jej pomoci gtk_widget_show() ) a 'ps m' jiz ukazuje
4.1% pameti. Kdyz to okno zavru pomoci gtk_widget_hide(Window) a
gtk_widget_destroy(Window), tak se mi okno sice zavre, ale obsazena pamet se
nezmensi. Proc? Jakym zpusobem mam po sobe cistit?
Samotne widgety sice nezabiraji moc mista, ale pokud otevru clist, tak mi
zabrana pamet je primo umerna poctu radku a sloupcu v nem zobrazenych, takze
si dokazu predstavit ze po delsim behu aplikace muze dojit k mnohonasobne
vetsi alokaci pameti, ktera se bude zbytecne drzet.


2.) vsimnul jsem si, ze kdyz mam nastaveny focus na nektere z oken moji gtk
aplikace a stisknu ctrl nebo alt, tak dojde ke zhrouceni celeho programu
(nemam v aplikaci zabudovany zadne akceleratory, ktere by na nejakou
takovou ani jinou klavesu cekaly). 
Zajimave je, ze se podobnym zpusobem hrouti i netscape-communicator-4.06 ...
Muze to mit na triku XKB-forced?

3.) v manualu jsem nikde nenasel moznost filtru u objektu GtkEntry.
Potreboval bych vsak uzivatele u nekterych vstupu omezovat vstupnimi filtry
typu only-numeric, only-float, only-date atp. Takze to resim tim zpusobem,
ze u toho entry nastavim event 'changed' a v nem volam funkci, ktera testuje
obsah entry a vyhodi znaky, ktere do tohoto typu vstupu nepatri a opraveny
string zase poslu zpet do entry. Problem je ovsem s cursorem, protoze pokud
je napr vstup numeric a uzivatel se vrati cursorem zpet a napise retezec
'12a345', tak ve filtru se znak 'a' vyradi, ale cursor je uz nenavratne
nastaven za dalsim znakem a nepodarilo se mi najit zpusob jak jej nastavit.
Funkce gtk_entry_set_position() je absolutne bez ucinku. (pouzivam
gtk+-1.0.6)

			Diky za radu

Ahoj -
	Michal 

--
   "http://www.inext.cz/www/chaky/", "mailto:chaky na vs.inext.cz"

    ---===   Beskyde, Beskyde, kdo po tobe SCSI ... ?   ===---


Další informace o konferenci Linux