gpt4 book ai didi

python - 在python Gtk3中使弹出式GtkMenu透明无边框

转载 作者:行者123 更新时间:2023-11-28 19:26:07 25 4
gpt4 key购买 nike

我在使用 Python 和 Gtk3 制作无边框和透明的弹出菜单时遇到了问题。使用相同的代码,我可以使我的主窗口和消息对话框的样式适当,那么我的代码有什么问题呢?在 CSS 定义中添加 border-style: none (或如下所示的每一边) 只会删除底部边框。这是我得到的屏幕截图。您可以在后面看到正确格式化的主窗口。 Cairo 正确地绘制了弹出窗口的背景(注意白色矩形内的圆角,但它不是透明的)

screenshot

编辑 通过获取 Gtk.Menu 的父级并在其上设置/绘图,我能够使菜单透明。但我一直无法摆脱顶部、左侧和右侧的边框。就在底部。

相关代码如下:

def __init__(self):
....#other code...

css.load_from_data("""
.title { background-color: rgba(255, 255, 255, 0); color: rgba(%s,1);}
.iconview { background-color: rgba(255, 255, 255, 0); color: rgba(%s,1); font-size:%i}
.background2 { background-color: rgba(%s,0.7); color: rgba(%s, 1);border-top-style:none; border-left-style:none; border-right-style:none; border-bottom-style:none;}
""" % (str(sel f.FONT_rgb).strip('[]'),str(self.FONT_rgb).strip('[]'),FONTSIZE,str(self.BG_rgb).strip('[]'),str(self.FONT_rgb).strip('[]')))
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), css,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

parent=self.popup.get_parent()
screen=parent.get_screen()

parent.set_visual(screen.get_rgba_visual())
parent.set_app_paintable(True)
parent.get_style_context().add_class('background2')

for child in self.popup.get_children():
child.get_style_context().add_class('iconview')
child.set_app_paintable(True)
self.popup.get_style_context().add_class('iconview')
self.popup.set_app_paintable(True)

parent.connect("draw", self.draw_window_cb)

def on_mouse_click(self,widget, event):
# Check if right mouse button was preseed
if event.type == Gdk.EventType.BUTTON_RELEASE and self.dragging==False:

if event.button == 3 and path != None:
self.popup.popup(None, None, None, None, event.button, event.time)

最佳答案

尝试:

border-radius: 15       
border-width: 0

关于python - 在python Gtk3中使弹出式GtkMenu透明无边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022389/

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