我只是做了這個工作,我自己。我發現QDockWidget默認標題欄的qss行爲在行爲上非常奇怪。
底部是最終的結果,對我的作品,但首先有一些解釋的事情。
的第一件事是,使用「圖像」設定爲設定的圖標不允許用於設置圖標的尺寸,並且它最終被按比例縮小到最小。因此,我無法按照我想要的方式使用「titlebar-close-icon:none」。
第二個是,您將無法使用「圖像」設置的「QDockWidget ::關閉按鈕:懸停」配對「titlebar-close-icon」設置,因爲「懸停」圖像會在後面畫出的圖標。這可能就是爲什麼你在給定的例子中沒有看到你預期的結果。
我結束了什麼以下所做的是設置一個「空白」(完全透明)PNG作爲圖標,這意味着然後我可以控制使用「圖標大小」設置的按鈕的大小。然後我設置按鈕的「圖像」,並利用「懸停」子設置來處理突出顯示的圖標。
最後,我發現(至少在我的環境),圖標會變爲不沾,除非小部件是浮動的,然後redocked,此時圖標都存在,並佔了。我做了什麼來解決這個問題只是在應用樣式之後調用setFloating(True)然後setFloating(False)。沒有可見的閃爍或我可以看到的任何東西,所以我正在使用它。
QDockWidget {
background: rgb(36,38,41);
titlebar-close-icon: url(:icons/blank.png);
titlebar-normal-icon: url(:icons/blank.png);
}
QDockWidget::title {
background: transparent;
color: transparent;
text-align: center;
border: none;
}
QDockWidget::close-button, QDockWidget::float-button {
border: none;
background: transparent;
icon-size: 12px;
padding: 1px;
}
QDockWidget::float-button {
image: url(:icons/undock.png);
}
QDockWidget::close-button {
image: url(:icons/close.png);
}
QDockWidget::float-button:hover {
image: url(:icons/undock_hover.png);
}
QDockWidget::close-button:hover {
image: url(:icons/close_hover.png);
}