Я пытаюсь получить изображение, которое будет скрыто темной "тенью", которую можно выборочно удалить (например, перетаскивая на нее мышь). (аналогично тому, как у вас есть тень во многих играх RTS, которая удаляется при изучении карты)
Я пытался использовать DrawingArea, но не смог найти способ импортировать в него изображение (даже больше поэтому: я даже понятия не имею о том, как его нарисовать).
После этого я подумал, что может быть проще просто отобразить изображение с помощью ImageWidget, а затем использовать Overlay, чтобы поместить DrawingArea поверх этого, чтобы я мог скрыть изображение.
Мне удалось отобразить изображение и добавить рисование области в наложение, но я не знал, как добавить наложение в виджет «Изображение». (И также до сих пор не знаю, как бы я рисовал на DrawingArea).
Что у меня есть:
box := setup_box(gtk.ORIENTATION_VERTICAL)
daShadow, err := gtk.DrawingAreaNew()
if err != nil {
log.Fatal("Unable to create shadow:", err)
}
imgMap, err := gtk.ImageNewFromFile("barley.jpg")
if err != nil {
log.Fatal("Unable to create img:", err)
}
ol, err := gtk.OverlayNew()
if err != nil {
log.Fatal("Unable to create overlay:", err)
}
ol.AddOverlay(daShadow) //Place DrawingArea on Overlay? But how to place Overlay on the image?
box.Add(imgMap)
box.Add(ol) //This is probably wrong?
Кто-нибудь знает, как мне этого добиться? (Я также открыт для альтернативных методов)