如何通过调整大小和移动属性来创建没有标题栏的gtk +窗口。
我检查了gtk_window_set_decorated
函数,但它禁用了调整大小和移动窗口的功能。我找到了this answer already,但我认为它与它无关。
我尝试在gtk_window_set_decorated之后设置resizeable true但仍无法正常工作
请检查代码
#include <gtk/gtk.h>
int main (int argc,
char *argv[])
{
GtkWidget *window;
/* Initialize GTK+ and all of its supporting libraries. */
gtk_init (&argc, &argv);
/* Create a new window, give it a title and display it to the user. */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hello World");
gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
//gtk_window_set_gravity(GTK_WINDOW (window), GDK_GRAVITY_NORTH_EAST);
//gtk_window_set_deletable (GTK_WINDOW (window), FALSE);
gtk_widget_show (window);
/* Hand control over to the main loop. */
gtk_main ();
return 0;
}
答案 0 :(得分:0)
因此,我发现可以工作的是删除gtk_window_set_decorated
设置为FALSE的标头。然后手动更改光标并调用gtk_window_begin_resize_drag()
以在按下鼠标时开始调整大小。
我的实现方式是检查鼠标是否在mousemove回调的边框附近,如果是,则用gdk_window_set_cursor()
更改光标。
在边界附近的mousedown事件中,我用适当的边界调用gtk_window_begin_resize_drag()
。