❶ 實戰!在Python中製作精美的圖形用戶界面
在默認情況下,使用PyQt5創建的窗口和部件使用的是自帶的默認樣式,設計感不足。然而,在PyQt5中,我們能夠以高度的自由度來自定義窗口和各種小部件的樣式,通過這種自定義,我們可以達到美化圖形界面的目的。本篇內容將通過一個實際的例子,使用QSS(Qt樣式表)和PyQt5的配置屬性,展示如何實現圖形用戶界面的美化工作。
首先,讓我們欣賞一下最終的成果:
這個界面由9張音樂封面圖片作為素材構成。需要這些圖片素材的讀者可以在【州的先生】微信公眾號(ID:zmister2016)回復關鍵詞「0013」獲取下載鏈接。
在設計界面時,我們採用了網格布局,將窗口分為左側菜單模塊和右側內容模塊。接下來,我們將詳細介紹界面的布局和組件的布置過程。
在左側菜單模塊中,我們使用網格布局對部件進行布局。其中包括左側菜單的按鈕、菜單列提示和整個窗口的最小化與關閉按鈕。在MainUi()類的init_ui()方法中,我們實例化創建了按鈕,並使用qtawesome庫添加了Font Awesome字體圖標。然後,將創建的按鈕添加到了左側部件的網格布局層中。
右側內容模塊包含了多個主要模塊。在搜索模塊中,我們使用了QLable()部件和QLineEdit()部件來實現文本和搜索框的功能。在推薦音樂模塊中,我們添加了推薦音樂的標題和橫向排列的音樂封面列表。音樂列表模塊和音樂歌單模塊分別使用網格布局的QWidget()部件下包裹著數個QPushButton()按鈕部件和QToolButton()工具按鈕部件來實現。
接下來,我們實現了音樂播放進度條和播放控制按鈕組。音樂播放進度條使用了QProgressBar()部件,音樂播放控制按鈕組則使用了一個QWidget()部件下包裹著三個QPushButton()按鈕部件來實現。
通過QSS和部件屬性,我們對窗口部件進行了美化。例如,我們將左側的窗口控制按鈕設置為小圓點形式,美化了左側菜單按鈕的顏色和邊框,對右側背景、搜索框和模塊文本進行了圓角處理,調整了推薦模塊、歌單模塊和歌曲列表模塊的樣式,以及播放進度條和播放控制按鈕組的外觀。
最後,我們通過設置窗口背景為透明、去除窗口邊框和調整布局內部件的間隙,使界面更加完整和美觀。至此,我們的圖形界面美化工作已完成。