0
我一直在尝试最后一个小时才能完成这项工作。 Dock的思想是一个基类为Gtk :: Window的类,并且在signal_draw()被命名时,给定的上下文应该被CairoMM绘制为透明的。相反,我看到一个黑色的窗口。 这里去代码:Gtkmm-3.0和Cairomm,透明窗口不能正常工作
Dock::Dock() : Gtk::Window()
{
set_decorated(false);
set_default_size(200,200);
set_app_paintable(true);
signal_draw().connect(sigc::mem_fun(*this,&Dock::dibujar));
}
bool Dock::dibujar(const Cairo::RefPtr<Cairo::Context>& contexto)
{
contexto->set_source_rgba(1.0,1.0,1.0,0.0);
contexto->set_operator(Cairo::OPERATOR_SOURCE);
contexto->paint();
return false;
}
不是应该足以使窗口透明?
但如果我用它在父控件这样,子部件将不能够有不同的(较大)透明度,对不对?有什么办法让孩子的小部件具有不同的alpha级别? – Debianita
你的意思是你只想拥有一个带有正常小部件的窗口,但是你可以通过它看到桌面背景? – ptomato
确实,这差不多就是它 – Debianita