1
최대화 된 창의 크기를 결정하려고하므로 창 크기를이 값에 가까운 값으로 설정할 수 있습니다. 그러나, 나는 최대화 된 창을 먼저 보여주지 않으면 어떻게 할 지 모른다. 윈도우가 표시되기 전에 gtk_window_maximize에 의해 생성 된 신호를 내보내는 방법이 있습니까?최대화 된 창을 표시하지 않고 크기를 어떻게 얻습니까?
아래는 지금까지의 시도입니다. 문제는 크기가 조정되기 전에 최대화 된 창을 볼 수 있다는 것입니다.
#include <gtk/gtk.h>
int signal_id;
void resize(GtkWindow *window, GdkEvent *event, gpointer data)
{
gint width, height;
g_signal_handler_disconnect(G_OBJECT(window), signal_id);
gtk_window_get_size(window, &width, &height);
gtk_window_resize(window, width - 10, height - 10);
}
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
signal_id = g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(resize), NULL);
gtk_window_maximize(GTK_WINDOW(window));
gtk_widget_show_all(GTK_WIDGET(window));
gtk_main();
return 0;
}
OK, 이제 보이지 않는 창을 매핑하는 WM을 얻는 방법이 있습니까? 내가 정말로하고 싶은 것은 창을 최대화 된 창만큼 크게 만드는 것입니다 (나는 이것을 반영하기 위해 내 포스트를 편집했습니다). –
그런 다음 화면을 0.8 * 화면 너비 및 0.8 * 화면 높이로 설정하십시오. gtk_widget_set_size_request()를 사용하면 맵핑 할 때 크기를 설정해야합니다. – salsaman
주의해야 할 다른 사항은 창 내용이 창을 확장하지 않도록하는 것입니다. 이 문제를 해결하려면 모든 창 내용을 주 창 내부의 스크롤 창 안에 넣으십시오. – salsaman