Portál AbcLinuxu, 8. května 2025 22:46

Dotaz: barva prázdné GTK Drawing Area

28.12.2011 18:05 h0nzZik | blog: Osel a stín
barva prázdné GTK Drawing Area
Přečteno: 132×
Odpovědět | Admin
Dobrý den, mám čerstvě exponovanou drawing area, přijde "expose-event". V tomto okamžiku je barva DA podobná barvě okolního prostoru (menu, tlačítka, nějaká ta výplň). Do DA nakreslím (například) tři červené kruhy. Poté chci jeden smazat, tozn. nastavit celou jeho plochu na původní barvu. Jak tu barvu zjistím? Vůbec nevím, jak se ta barva jmenuje, co hledat etc..

Jiné řešení problému je pomocí gtk_widget_set_size_request celou DA "zcvrknout" na nulovou velikost, dalším voláním této funkce obnovit původní velikost a tím smazat obsah DA a vyvolat "expose-event"

Předem dík ;)

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.12.2011 19:45 l4m4
Rozbalit Rozbalit vše Re: barva prázdné GTK Drawing Area
Odpovědět | | Sbalit | Link | Blokovat | Admin
???

gtk_widget_queue_draw() a už ten kruh prostě nekreslit.

Původní ,barva` může být cokoli, co je nastaveno jako pozadí: gradient, obrázek, ...

Je možné poslat expose event pouze na oblast aproximující (sjednocením obdélníků) pouze oblast toho kruhu, který má zmizet, pomocí gtk_widget_queue_draw_region(), není-li to jednorázová akce a byl by problém s výkonem. Případně kompromisně použít jednodušší gtk_widget_queue_draw_area(), která překreslí jeden obdélník.
Řešení 1× (h0nzZik (tazatel))
28.12.2011 19:53 l4m4
Rozbalit Rozbalit vše Re: barva prázdné GTK Drawing Area
Jinak pozadí se v Gtk+3 se správným stylem vykreslí pomocí gtk_render_background(), pokud to potřebuješ dělat explicitně.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.