我在C中开发了一个gtk2应用程序(Conky Companion)来帮助我的conky脚本用户
相对轻松地创建自己的conkyrcs。 主屏幕的屏幕截图如下:
用户可以将图标或标签从右侧拖放到左侧,移动它们,调整它们大小,更改它们的大小或颜色等。快乐时,他可以按下生成按钮并生成一个conkyrc文件。
屏幕是一个带有桌子的顶部不可调整大小的窗口。桌子的两侧是放置固定容器的框架 每当有人尝试在左框架/固定容器的右边框或底部边框放置图标或标签时,窗口小部件就会偏离边界,如上面的屏幕截图所示。
我现在正试图将应用程序移植到Gtk3,我面临着一个奇怪的问题 每当用户尝试将对象放置或移动到左框架/固定容器的右边框或底部边框时,它会调整自身大小以适应新放置的窗口小部件。
如果我将对象向左移动(或向上移动),则帧将返回到由gtk_widget_set_size_request定义的大小。
有没有办法让固定容器......固定?我不希望它调整大小。
将框架和固定容器放在窗口中的代码是:
/* LEFT FRAME */
frame1= gtk_frame_new(NULL);
gtk_table_attach(GTK_TABLE(table), frame1, 0,14,0,49,GTK_SHRINK,GTK_SHRINK,0,0);
gtk_widget_set_size_request(frame1, 360,570);
gtk_widget_show(frame1);
/* LEFT FRAME - FIXED CONTAINER */
fixed1 = gtk_fixed_new();
gtk_widget_set_has_window(fixed1,TRUE);
gtk_container_add(GTK_CONTAINER(frame1),fixed1);
gtk_widget_modify_bg (fixed1, GTK_STATE_NORMAL, &color);
gtk_drag_dest_set (
fixed1, GTK_DEST_DEFAULT_ALL,
target_list, 1, GDK_ACTION_COPY|GDK_ACTION_MOVE);
g_signal_connect (fixed1, "drag-drop",G_CALLBACK (dr_data_rec_1d1), (gpointer)fixed1);
gtk_widget_show(fixed1);
我尝试过以下事项:
1)摆弄GTK_EXPAND和GTK_FILL以放置框架。没有变化。
2)gtk_window_set_geometry_hints用于窗口,表格,框架和固定容器。没有变化。
3)用gtk_grid替换gtk_table。没变。
我不知道该做什么或搜索什么;我甚至不知道问题是在窗口,桌子,框架,固定容器中还是在一些模糊的拖放设置中。
期待任何暗示,如果解决方案容易和/或明显,请抱歉。