Skip to content

[PyQt5] 基本教學(11) 使用 QColorDialog 調色盤來進行顏色的設定

最近在開發自己有興趣的專案時,有需要選擇『顏色』的這種需求。本來的想法很單純,想說寫一個簡單的調色盤讓使用者自己去選取顏色,然後我在獲取使用者想要的顏色。

這感覺是可以做得出來的,我以前有使用過 Unity 寫過類似的程式 —— 不過在我蒐集顏色設定的資料時,我偶然看到了一個方便的套件 —— QColorDialog ,貌似是 PyQt5 裡內建的調色盤,有一個自己的圖形化界面,並能回傳使用者選取的顏色。

如果對 PyQt5 的教學有興趣,也可以去看看官方的指南: https://www.riverbankcomputing.com/static/Docs/PyQt5/index.html?highlight=qicon

廢話不多說,我們直接來看段程式碼吧!


QColorDialog 使用方法

使用方法非常單純,首先我們來看段 Sample Code:

# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *


class colorSelector(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Color Selector')
        self.setGeometry(600, 500, 400, 200)

        # OpenColorDialog
        color = QColorDialog.getColor()
        if color.isValid():
            print(color.name())


if __name__ == '__main__':
    app = QApplication([])
    window = colorSelector()
    window.show()
    sys.exit(app.exec_())


Output:

其中最重要的,便是:

color = QColorDialog.getColor()


這行程式碼。這行程式碼會顯示出上面那個預設的圖形化界面,並且返回使用者選擇的顏色。

比如說我選擇了藍色:

我們的程式便會返回:

#0004ff

我們常使用來表示顏色的數值,除了經典的 RGB 三原色的數值之外,我們也常使用這樣子的 Hex Color Code,寫過網頁的大家想必都不陌生。

我們獲取了使用者選擇的顏色後,就可以開始應用在自己的應用程式當中了!比如說在我想寫的程式裡,選擇顏色是讓使用者可以更換畫筆顏色。

另外,如果對於預設的 QColorDialog 界面不滿意,或者是希望能夠直接作為自己界面的一個元件,可以嘗試繼承 QColorDialog 這個 class 進行改寫。

希望大家都能順利選擇顏色。


Read More

1 thought on “[PyQt5] 基本教學(11) 使用 QColorDialog 調色盤來進行顏色的設定”

  1. Pingback: 【PyQt5】Day 23 - 使用系統內建的調色盤 QColorDialog,來替我們選擇顏色 QColor (Color Picker) - 嗡嗡的隨手筆記

Leave a Reply