gpt4 book ai didi

gtk DrawingArea 在固定内部展开

转载 作者:行者123 更新时间:2023-12-04 19:13:15 28 4
gpt4 key购买 nike

我目前在框架内加载一个 DrawingArea 小部件 - 它总是扩展以填充框架。然后我可以在 DrawingArea 上设置 configure 事件来分配一个与窗口大小相同的像素图,在它上面绘制,然后将像素图绘制到 DrawingArea(使用 draw_drawable)。

但是,现在我想在 DrawingArea 之上覆盖不可见的小部件 - 以便为显示的图像部分创建工具提示事件。因此,我尝试将 DrawingArea 放在 Fixed 中 - 但现在它不会扩展以填充窗口。我可以给 DrawingArea 一个明确的大小请求 - 但是我真的希望它扩展以填充它的父窗口已经给出的任何空间分配。我曾尝试将大小请求设置为 -1,但这无济于事。

有什么建议?

最佳答案

想出了一个有效的解决方案:

  • 创建一个固定。
  • 创建一个 DrawingArea 并将其添加到 Fixed。
  • 将 Fixed 连接到 'size_allocate' 信号,在信号处理程序中,获取 Fixed 分配(宽度和高度),然后获取 DrawingArea 以对当前分配进行 size_request。

  • 它似乎做我想要的,但是我现在注意到两个“size_allocate”信号被发送到固定 - 一个是在窗口调整大小时,另一个可能是在 DrawingArea 请求新的大小分配时。为了避免在第二个信号中做很多额外的不必要的工作,如果前一个高度/宽度与新分配匹配,我只返回。但如果可能的话,我宁愿取消第二个信号。

    我尝试在 DrawingArea size_request 之前/之后阻止/解除阻止 size_allocate 信号无济于事(可能是因为我已经在 size_allocation 处理程序中)。

    有谁知道一种更清洁的方法来处理这个问题?

    关于gtk DrawingArea 在固定内部展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911136/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com