[英]No shadows around window when I start program without desktop environment in Ubuntu
操作系統:Ubuntu 16.04
我編寫了一個Qt程序並在沒有桌面環境的情況下運行它。
這是我有關如何在沒有桌面環境的情況下運行它的問題。
如何在沒有桌面環境的情況下運行GUI應用程序並使它全屏顯示?
很快,我通過兩個步驟進行操作:
在/ usr / share / xsession中添加一個.desktop文件以啟動我的程序:
2.1啟動compiz作為窗口管理器;
2.2啟動我的程序。
腳本的最后兩行是這樣的:
compiz&
/home/kevin/myapp
現在我還有另一個問題 。
當程序中彈出一個窗口時,窗口周圍沒有陰影 ,就像桌面環境中的程序一樣。
因此,彈出窗口與其父窗口之間沒有清晰的邊界。
但是,當我在桌面環境中運行它時,彈出窗口周圍有陰影。
如何在彈出的窗口周圍留下陰影?
將您的問題歸結為它的本質,您要問的是為什么,當您在沒有窗口管理器的情況下運行X11程序時,卻沒有得到窗口管理器的裝飾。 答案當然是“因為沒有窗口管理器”。
https://zh.wikipedia.org/wiki/X_window_manager
簡而言之,X11窗口(通常)只是矩形,它們使應用程序可以在專有區域中進行繪制,而不會干擾其他應用程序。 它可以像平常一樣管理輸入,但在視覺上,它只是矩形。
X11確實允許運行一個特殊的程序,稱為“窗口管理器”。 每當您想顯示一個窗口時,該程序就會知道,並對該窗口進行處理。 特別是,標准的做法是將窗口包裝在窗口管理器的窗口內,並為窗口顯示一堆控件。 這些功能包括最大化,最小化,關閉,輕松移動窗口,調整大小等。
您可以使用名為xwininfo
的程序查看此額外窗口。 您會看到,當您不使用管理程序運行程序時,它只是您的窗口。 與管理器一起運行時,您的窗口是其他一個或多個(取決於WM)窗口的子窗口。
您談論的陰影也是窗口管理器所做的事情。 如果沒有它運行,您將無法獲得它。
至於解決方案,我可以想到兩個:
要么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.