Gtk - 未装饰的窗口无法调整大小

Posted

技术标签:

【中文标题】Gtk - 未装饰的窗口无法调整大小【英文标题】:Gtk - Window which is not decorated cannot be resized 【发布时间】:2019-08-03 05:00:22 【问题描述】:

我有一个 GtkWindow,我设置它不被窗口管理器装饰。 这工作正常,但我无法再调整窗口大小,即使启用了调整大小。 我已经发现这是由于缺少窗口管理器使用的调整大小区域。但是,在以前的 Gtk 版本中,我没有这个问题(现在使用 gtk 3.22.30)。 我的问题是,有没有办法用 CSS 解决这个问题,还是我需要实现自己的窗口大小调整?

问候,

标签

【问题讨论】:

也许如果你能解释为什么你需要这个,会有另一种方法来实现你正在寻找的东西...... 我正在使用自己的自定义装饰而不是默认装饰,但作为副作用,由于缺少调整大小手柄,窗口无法再调整大小。这就是为什么我想重新启用调整窗口大小的原因,很明显。我已经尝试为窗口设置边距/边框,但这不起作用。至于为什么,纯粹是出于设计原因。 【参考方案1】:

如果有人想知道这是如何结束的:我没有找到任何方法让 GTK 使用 CSS 调整我的窗口大小(我认为它可能缺少用于调整大小手柄或其他东西的空间)。但是,我通过实现一些逻辑解决了这个问题,这些逻辑最终在 signal_button_press_event() 的处理程序中调用 begin_resize_drag()。

在使用 begin_move_drag() 移动窗口之前,我也做过同样的事情,但是,在以前的 GTK 版本中,调整大小仍然有效,而在 gtk 3.22 中,它不适用于使用自定义装饰的窗口。

【讨论】:

我必须实现的事情:当用户悬停在边缘时相应地设置光标,在开始调整大小时确定当前的 Gdk::WindowEdge,在窗口边缘提供一些空间来制作它用户友好。 嗨@tagelicht 我正在为自定义窗口实现类似的功能,并且我已经完成了所有设置,但是我发现 Gtk 窗口中的调整大小句柄在 outside窗口本身,我的只能从窗口内部触发。你处理过这个吗?我有更多关于这个问题的详细信息here

以上是关于Gtk - 未装饰的窗口无法调整大小的主要内容,如果未能解决你的问题,请参考以下文章

连接到实现信号:奇怪的窗口大小调整行为

如何在调整窗口大小时暂停 GtkDrawingArea 绘制回调?

调整窗口大小时,公共控件未正确绘制

如何调整UIPickerView,UISwitch等无法通过frame调整大小的大小

ExtJs 4 - 调整窗口大小时未保持 TextField 高度

如何使 Tkinter 窗口无法调整大小?