我有一个GtkWindow
我想要调整大小,但是它的比例受到限制。实现这一目标的最简单方法是什么?我应该在每个configure-event
上手动调整大小,还是有更简单的方法呢?
我的窗口小部件层次结构如下:
GtkWindow
GtkBox
GtkToolbar
GtkBox
GtkAspectFrame
从我得到的答案中,我尝试了类似的东西:
gh = Gdk.Geometry()
gh.min_aspect = 0.5
gh.max_axpect = 0.5
w.set_geometry_hints(None, gh, Gdk.WindowHints.ASPECT)
但是,我仍然可以用我想要的任何方面调整窗口大小。我错过了什么?
答案 0 :(得分:1)
使用gtk_window_set_geometry_hints()。您需要使用GdkGeometry结构中的min_aspect和max_aspect字段。
答案 1 :(得分:1)
正如另一个答案所示,您可以使用gtk_window_set_geometry_hints()。文档说:
此函数设置有关如何由用户调整窗口大小的提示。您可以设置最小和最大尺寸;允许调整大小 增量(例如对于xterm,您只能按大小调整大小 字符); 宽高比;等等。
该函数的原型如下:
void gtk_window_set_geometry_hints (GtkWindow *window,
GtkWidget *geometry_widget,
GdkGeometry *geometry,
GdkWindowHints geom_mask);
您可以使用GdkGeometry数据指定最小和最大宽度和高度 type是具有以下字段的结构:
struct GdkGeometry {
gint min_width;
gint min_height;
gint max_width;
gint max_height;
gint base_width;
gint base_height;
gint width_inc;
gint height_inc;
gdouble min_aspect;
gdouble max_aspect;
GdkGravity win_gravity;
};
答案 2 :(得分:0)
您需要将max_axpect
更改为max_aspect
。
这应该有所帮助。