LINUX.ORG.RU

GTK окно в центр

 


0

1

Как в gtk сделать что бы окно сразу появлялось в центре экрана?

Делаю так:

gtk_window_set_gravity(window,GDK_GRAVITY_CENTER);

gtk_window_set_position(window,GTK_WIN_POS_CENTER);

Окно появляется фиг знает где, и через полсекунды прыгает в центр.

сперва сконфигурируй, а потом отрисовывай.

auto12884835 ()

Так хорошо:

win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
...
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
while (gtk_events_pending ()) gtk_main_iteration ();
gtk_widget_show_all (win);
gtk_main ();
auto12884835 ()
Ответ на: комментарий от auto12884835

сперва сконфигурируй, а потом отрисовывай.

Блин, спасибо. Все заработало.

while (gtk_events_pending ()) gtk_main_iteration ();

А есть смысл? События, вроде, как раз в mainloop'е обрабатываются.

snuker ()
Ответ на: комментарий от snuker

А есть смысл? События, вроде, как раз в mainloop'е обрабатываются.

Если при инициализации будут события, которые влияют на внешний вид окна, лучше их обработать до того, как окно будет показано. Иначе ты рискуешь получить шевелящееся окно при старте. Прикольно, но лажа.

auto12884835 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.