Qt For Python 「PySide6」 建立GUI - 14 Icons

圖示是用於幫助在使用者介面中導航或理解的小圖片。 它們通常出現在按鈕上,與文字一起或代替文字,或者與選單中的操作一起。 透過使用易於識別的指標,您可以使您的介面更易於使用。

在 PySide6 中,您有許多不同的選項來說明如何將圖示來源和整合到您的應用程式中。 在本節中,我們將研究這些選項以及每個選項的優缺點。

Qt 標準圖示

嚮應用程式新增簡單圖示的最簡單方法是使用 Qt 自帶的內建圖示。 這一小組圖示涵蓋了許多標準用例,從檔案操作、向前和向後箭頭以及訊息框指示器。

內建圖示的完整列表如下所示。

Qt For Python 「PySide6」 建立GUI - 14 Icons

您會注意到這組圖示有點限制。 如果這對您正在構建的應用程式來說不是問題,或者如果您的應用程式只需要幾個圖示,那麼它可能仍然是一個可行的選擇。

可以使用 QStyle。standardIcon(name) 或 QStyle。 通過當前應用程式樣式訪問圖示。 內建圖示名稱的完整表格如下所示。

SP_ArrowBack

SP_DirIcon

SP_MediaSkipBackward

SP_ArrowDown

SP_DirLinkIcon

SP_MediaSkipForward

SP_ArrowForward

SP_DirOpenIcon

SP_MediaStop

SP_ArrowLeft

SP_DockWidgetCloseButton

SP_MediaVolume

SP_ArrowRight

SP_DriveCDIcon

SP_MediaVolumeMuted

SP_ArrowUp

SP_DriveDVDIcon

SP_MessageBoxCritical

SP_BrowserReload

SP_DriveFDIcon

SP_MessageBoxInformation

SP_BrowserStop

SP_DriveHDIcon

SP_MessageBoxQuestion

SP_CommandLink

SP_DriveNetIcon

SP_MessageBoxWarning

SP_ComputerIcon

SP_FileDialogBack

SP_TitleBarCloseButton

SP_CustomBase

SP_FileDialogContentsView

SP_TitleBarContextHelpButton

SP_DesktopIcon

SP_FileDialogDetailedView

SP_TitleBarMaxButton

SP_DialogApplyButton

SP_FileDialogEnd

SP_TitleBarMenuButton

SP_DialogCancelButton

SP_FileDialogInfoView

SP_TitleBarMinButton

SP_DialogCloseButton

SP_FileDialogListView

SP_TitleBarNormalButton

SP_DialogDiscardButton

SP_FileDialogNewFolder

SP_TitleBarShadeButton

SP_DialogHelpButton

SP_FileDialogStart

SP_TitleBarUnshadeButton

SP_DialogNoButton

SP_FileDialogToParent

SP_ToolBarHorizontalExtensionButton

SP_DialogOkButton

SP_FileIcon

SP_ToolBarVerticalExtensionButton

SP_DialogResetButton

SP_FileLinkIcon

SP_TrashIcon

SP_DialogSaveButton

SP_MediaPause

SP_VistaShield

SP_DialogYesButton

SP_MediaPlay

SP_DirClosedIcon

SP_MediaSeekBackward

SP_DirHomeIcon

SP_MediaSeekForward

您可以透過 QStyle 名稱空間直接訪問這些圖示,如下所示。

icon = QStyle。standardIcon(QStyle。SP_MessageBoxCritical)button。setIcon(icon)

您還可以使用來自特定小部件的樣式物件。 您使用哪個並不重要,因為無論如何我們都只訪問內建程式。

style = button。style() # Get the QStyle object from the widget。icon = style。standardIcon(style。SP_MessageBoxCritical)button。setIcon(icon)

如果在此標準集中找不到所需的圖示,則需要使用下面概述的其他方法之一。

雖然您可以將來自不同圖示集的圖示混合搭配在一起,但最好始終使用單一樣式以保持您的應用程式的連貫性。

圖示檔案

如果標準圖示不是您要找的,或者您需要的圖示不可用,您可以使用任何您喜歡的自定義圖示。 圖示可以是您平臺上任何 Qt 支援的影象型別,但對於大多數用例,PNG 或 SVG 影象更可取。

要獲取您自己平臺上支援的影象格式列表,您可以呼叫 QtGui。QImageReader。supportedImageFormats()。

圖示集

如果您不是平面設計師,您將透過使用眾多可用圖示集之一來節省大量時間(和麻煩)。 線上提供了數千種此類軟體,根據它們在開源軟體或商業軟體中的使用情況,它們具有不同的許可證。

在這本書和示例應用程式中,我使用了 Fugue 圖示集,也可以在您的軟體中免費使用,並感謝作者。 Tango 圖示集是為在 Linux 上使用而開發的大圖示集,但是沒有許可要求,它可以在任何平臺上使用。

資源

描述

許可證

Fugue

by p。yusukekamiyamane

3,570 個 PNG 格式的 16x16 圖示

CC BY 3。0

Diagona

by p。yusukekamiyamane

400 個 PNG 格式的 16x16 和 10x10 圖示

CC BY 3。0

Tango Icons

by The Tango Desktop Project

使用 Tango 專案顏色主題的圖示。

公共區域

雖然您確實可以控制選單和工具欄中使用的圖示大小,但在大多數情況下,您應該保持原樣。 一個好的標準選單圖示大小是 20x20 畫素。

比這更小的尺寸也很好,圖示將居中而不是放大。

建立自己的

如果您不喜歡任何可用的圖示集,或者希望您的應用程式具有獨特的外觀,您當然可以設計自己的圖示。 可以使用任何標準圖形軟體建立圖示,並儲存為具有透明背景的 PNG 影象。 圖示應該是方形的,並且具有在應用程式中使用時不需要放大或縮小的解析度。

使用圖示檔案

一旦你有了你的圖示檔案——無論是來自圖示集還是自己繪製的——它們可以透過建立 QtGui。QIcon 的例項在你的 Qt 應用程式中使用,直接傳遞圖示的檔名。

QtGui。QIcon(“”)

雖然您可以使用絕對(完整)和相對(部分)來指向您的檔案,但絕對路徑在分發應用程式時很容易中斷。 只要圖示檔案相對於您的指令碼儲存在相同的位置,相對路徑就會起作用,儘管即使這樣在打包時也很難管理。 如果您在應用程式中使用許多圖示,或者將分發您的應用程式,您可能需要使用 Qt 資源系統。

為了建立圖示例項,您必須已經建立了一個 QApplication 例項。 為了確保是這種情況,您可以在原始檔的頂部建立您的應用程式例項,或者在 __init__ 中為使用它們的小部件或視窗建立您的 QIcon 例項。

免費桌面規範圖示 (Linux)

在 Linux 桌面上,有一個叫做 Free Desktop Specification 的東西,它定義了特定操作圖示的標準名稱。

如果您的應用程式使用這些特定的圖示名稱(並從“主題”載入圖示),那麼在 Linux 上您的應用程式將使用桌面上啟用的當前圖示集。 這裡的目標是確保所有應用程式具有相同的外觀和感覺,同時保持可配置性。

要在 Qt Designer 中使用這些,您可以選擇下拉選單並選擇“從主題設定圖示。。。”

Qt For Python 「PySide6」 建立GUI - 14 Icons

然後輸入要使用的圖示的名稱,例如 document-new(請參閱有效名稱的完整列表)。

Qt For Python 「PySide6」 建立GUI - 14 Icons

在程式碼中,您可以使用 icon = QtGui。QIcon。fromTheme(“document-new”) 從活動的 Linux 桌面主題中獲取圖示。 以下程式碼段從活動主題生成一個帶有“新文件”圖示的小視窗(按鈕)。

from PySide6。QtWidgets import QApplication, QPushButtonfrom PySide6。QtGui import QIconimport sysapp = QApplication(sys。argv)button = QPushButton(“Hello”)icon = QIcon。fromTheme(“document-new”)button。setIcon(icon)button。show()app。exec_()

在 Ubuntu 上生成的視窗將如下所示,具有預設的圖示主題。

Qt For Python 「PySide6」 建立GUI - 14 Icons

如果您正在開發跨平臺應用程式,您仍然可以在 Linux 上使用這些標準圖示。 為此,請使用您自己的 Windows 和 macOS 圖示並在 Qt Designer 中建立自定義主題,使用圖示的免費桌面規範名稱。