如何使用 GOTK3 在 Go 中动态隐藏图像?

问题描述 投票:0回答:1

我正在使用 Go 和 GOTK,并且我有一个 UI 小部件,其中包含一些子小部件。在父小部件中,我想动态显示和隐藏其中的图像,并且当隐藏图像时,我不希望隐藏的图像占用屏幕上的任何空间。

我尝试过这样做:

image, _ := gtk.ImageNewFromFile(...)
myWidget.Add(image)

...and then later
image.Hide()

...但是这对图像没有任何影响并且仍然可见。我也尝试过:

myWidget.Remove(image)
但这也没有隐藏图像。

我发现唯一接近的是定义 CSS 类:

.hidden {
    opacity: 0;
}

...然后,当我想隐藏图像时,请执行以下操作:

    context, _ := image.GetStyleContext()
    context.AddClass("hidden")

这会隐藏图像,但图像占用的屏幕空间仍然保留。

作为我想做的一个例子,假设我的小部件中有几个图像和一些标签,但只想一次显示一个图像 - 例如“播放/停止”图像,并且停止时只显示播放图像,播放时只显示停止图像(并且都显示在同一位置)

我还尝试定义一个 CSS 类,将显示设置为无:

.display-none {
    display: none
}

...但是我收到一个错误,“display”不是有效的属性名称。

是否可以动态显示和隐藏图像?

go gtk
1个回答
0
投票

您可能正在寻找

image.set_visible(False)

© www.soinside.com 2019 - 2024. All rights reserved.