You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何锁定GTK3 Paned组件以禁止用户调整面板大小?

锁定GTK3 Paned组件大小的简便方法

不用替换成Box组件,有几个更直接的方案:

  • 禁用手柄交互:获取Paned的手柄控件,将其设置为不可响应状态:

    GtkWidget *handle = gtk_paned_get_handle(GTK_PANED(paned));
    gtk_widget_set_sensitive(handle, FALSE);
    

    这样触摸或点击手柄区域不会触发任何调整操作。

  • 固定子面板尺寸:给Paned的每个子组件设置相同的最小、最大尺寸,同时关闭子组件的扩展属性:

    // 以左子组件为例,先获取当前尺寸
    gint width, height;
    gtk_widget_get_size_request(child_left, &width, &height);
    // 固定尺寸,让子组件无法被拉伸/压缩
    gtk_widget_set_size_request(child_left, width, height);
    gtk_widget_set_hexpand(child_left, FALSE);
    gtk_widget_set_vexpand(child_left, FALSE);
    // 对右子组件执行同样操作
    

    配合固定Paned的分隔位置gtk_paned_set_position(GTK_PANED(paned), target_pos),就能彻底锁定面板比例。

  • 隐藏手柄:直接把手柄隐藏,从视觉上消除触发调整的入口,同时搭配上述固定尺寸的设置:

    gtk_paned_set_handle_visible(GTK_PANED(paned), FALSE);
    

这些操作都可以在运行时动态切换,需要解锁时反向执行即可(恢复手柄敏感、取消子组件尺寸固定、显示手柄),不用来回替换组件。

内容的提问来源于stack exchange,提问作者tig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:27:09