【发布时间】:2017-05-02 09:08:14
【问题描述】:
我正在尝试制作启动时全屏显示的 gtk 应用程序。 UI 是在 glade 中制作的,它包含一个 MainWindow、框架和一个标签。我需要在标签上显示一些信息,所以它必须是全屏的。我有一台尺寸为1366x768 的显示器。我已将主窗口、框架和标签的宽度和高度设置为1366x768。下面是代码:
int main(int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;
GError *error = NULL;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
if( ! gtk_builder_add_from_file( builder, "UI.glade", &error ) )
{
g_warning( "%s", error->message );
g_free( error );
return( 1 );
}
window = GTK_WIDGET(gtk_builder_get_object(builder, "MainWindow"));
frame1 = GTK_WIDGET(gtk_builder_get_object(builder, "frame1"));
gtk_builder_connect_signals(builder, NULL);
g_signal_connect (window, "delete_event", G_CALLBACK (on_MainWindow_destroy_event), NULL);
label1 = GTK_WIDGET(gtk_builder_get_object(builder, "label1"));
g_object_unref(builder);
GdkColor black = {0, 0x0000, 0x0000, 0x0000};
GdkColor white = {0, 0xFFFF, 0xFFFF, 0xFFFF};
gtk_widget_modify_bg(frame1, GTK_STATE_NORMAL, &black);
gtk_widget_modify_fg(frame1, GTK_STATE_NORMAL, &white);
gtk_widget_show(window);
gtk_main();
return 0;
}
启动时如下所示:
您可以看到窗口不是全屏的,因为左侧工具栏和顶部标题栏仍在显示。然后我阅读了文档,发现我需要包含gtk_window_fullscreen。 但它仍然没有进入全屏模式。谁能告诉我如何使这个窗口全屏。请帮忙。谢谢。
【问题讨论】:
-
当您将应用程序(浏览器等)置于全屏模式时,也会发生这种情况,对吧?窗口管理器不允许窗口占用额外的空间。您可以将栏设置为自动隐藏吗?
-
@JoséFonte 不,我也试过这个。它没有用。我将它设置为自动隐藏,但那个栏空间仍然存在。
-
那是窗口管理器的问题,不是 gtk。尝试禁用 ubuntu 停靠栏一段时间。
-
试试 gtk_widget_set_size_request
-
阅读reference。 default_size 允许缩小窗口,但 set_size_request 设置了最小尺寸(问题是你不能在之后将其缩小到小于该尺寸)。
标签: c gtk fullscreen