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