make widget(Button)透明gtk

时间:2016-02-12 07:58:28

标签: c# gtk gtk3 gtk#

我想让我的HMI中的按钮透明但我无法找到任何功能,这可以做到!

使用下面的代码我只能让我的背景透明但不是组件。

Button = gtk_button_new_with_label ("MyButton");
gtk_window_set_opacity(GTK_Widget(Button), 0.3);

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,问题很可能是在读取此函数的python文档时依赖操作系统(我知道你使用C但这应该不是问题),它提到了关于窗口系统功能的一些评论。 / p>

  

set_opacity (不透明度)[source]

     

<强>参数:

     
      
  • 不透明度(浮点数) - 所需的不透明度,介于0和1之间
  •   
     

请求部分呈现self   透明,不透明度0完全透明,1完全透明   不透明。 (不透明度值被限制在[0,1]范围内。)。这有效   在toplevel小部件和子小部件上,虽然有一些   限制:

     

对于顶级窗口小部件,这取决于窗口的功能   系统。在X11上,这对X屏幕有任何影响   合成经理跑。见Gtk.Widget.is_composited()。上   它应该始终工作,虽然设置窗口的不透明度   显示窗口后,它会在Windows上闪烁一次。

     

对于子窗口小部件,如果任何受影响的窗口小部件具有本机,则它不起作用   窗口,或禁用双缓冲。

因此,假设您仍然想要一个透明按钮,您当然可以根据Gtk.ImageEventBox以及button-press-event和{{1}制作自定义按钮信号。您可以使用任何您喜欢的图像和不透明度。

由于我更喜欢​​Python的人,所以示例是在Python中,但在C中重现它应该相当容易:

button-release-event