gpt4 book ai didi

c - 在屏幕上设置装饰 GtkWindow 的框架位置

转载 作者:太空狗 更新时间:2023-10-29 15:39:44 29 4
gpt4 key购买 nike

我的任务是在程序启动时恢复窗口 frame 在屏幕上的位置 - 以便定义初始窗口位置。

考虑以下在 Linux 上装饰的 GtkWindow 实例:

enter image description here

窗口有两个主要框:框架框和客户框。

还有两个 GTK 函数可以设置窗口在屏幕上的大小和位置:

gtk_window_move() - 设置窗口的 frame 框在屏幕上的位置和

gtk_window_resize - 设置窗口的客户端框大小。

问题:

在 GTK 中有什么方法可以定义窗口的初始 frame 位置吗?

在 Windows 上,我可以通过调用 MoveWindow() 和在 MacOS 上调用 NSWindow setFrame 方法来实现。但是在 GTK 上......我要求太多了吗?

最佳答案

连接到窗口的“实现”信号(重要:在调用 gtk_widget_show 之前)。然后从处理程序调用 gtk_window_move:

#include <gtk/gtk.h>

void on_window_realize(GtkWidget *widget,
gpointer user_data)
{
GtkWindow *window = GTK_WINDOW(user_data);
gtk_window_move(window, 100, 40);
}

int main(int argc, char **argv) {
GtkWidget *window = NULL;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window,
"realize",
G_CALLBACK(on_window_realize),
(gpointer)window);
g_signal_connect(window, "destroy", gtk_main_quit, NULL);
gtk_widget_show(window);

gtk_main();

return 0;
}

关于c - 在屏幕上设置装饰 GtkWindow 的框架位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58103333/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com