欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用PyQt5編寫一個簡單的取色器

 更新時間:2025年01月15日 10:30:49   作者:阿九筒  
這篇文章主要為大家介紹了PyQt5搭建的一個取色器,一共寫了兩款應用,一款使用快捷鍵捕獲鼠標附近圖像的RGB和16進制顏色編碼,一款跟隨鼠標刷新圖像的RGB和16進制顏色編碼,希望對大家有所幫助

PyQt5搭建的一個取色器,一共寫了兩款應用,一款使用快捷鍵捕獲鼠標附近圖像的RGB和16進制顏色編碼,一款跟隨鼠標刷新圖像的RGB和16進制顏色編碼。桌面應用程序的背景色切換也可以參考此程序。

源程序的git地址: gitee.com/mtoooo/color_picker

打包的exe下載鏈接: gitee.com/mtoooo/color_picker

取色器1

源代碼參考main.py,也可以點擊頂部exe鏈接下載取色器.exe文件直接使用,取色快捷鍵Shift+A,應用程序會顯示RGB和16進制顏色編碼。

源程序初始化

pip install PyQt5==5.15.10

程序啟動

python main.py

取色快捷鍵Shift+A

交互效果

main.py

import sys
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QColor, QPixmap, QCursor, QPainter, QPen, QBrush
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout

class ColorPickerApp(QWidget):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Color Picker")
        self.setGeometry(100, 100, 300, 200)

        # 創(chuàng)建標簽,用于顯示 RGB 和 16 進制顏色
        self.rgb_hex_label = QLabel("RGB: None\nHex: None", self)

        # 設置標簽樣式和大小
        self.rgb_hex_label.setFixedSize(150, 50)  # 設置固定大小 100x50
        self.rgb_hex_label.setStyleSheet("font-size: 12px; padding: 5px; border-radius: 5px; background-color: white; border: 1px solid black;")

        # 設置布局,使用 QHBoxLayout 和 QVBoxLayout 居中顯示標簽
        layout = QVBoxLayout(self)
        layout.setAlignment(Qt.AlignCenter)  # 設置垂直布局居中
        layout.addWidget(self.rgb_hex_label)
        self.setLayout(layout)

        # 定時器用于定時獲取顏色信息
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_color)
        self.timer.start(100)  # 每100毫秒更新一次

        # 用來存儲背景顏色
        self.bg_color = QColor(255, 255, 255)  # 默認背景為白色

    def update_color(self):
        # 獲取鼠標位置
        cursor_pos = QCursor.pos()

        # 獲取屏幕截圖并獲取當前鼠標位置的顏色
        screen = QApplication.primaryScreen()
        pixmap = screen.grabWindow(0)
        color = QColor(pixmap.toImage().pixel(cursor_pos))

        # 獲取 RGB 和 16 進制顏色值
        rgb = color.getRgb()
        hex_color = color.name()

        # 更新標簽顯示顏色信息
        self.rgb_hex_label.setText(f"RGB: {rgb[0]}, {rgb[1]}, {rgb[2]}\nHex: {hex_color}")

        # 改變窗口背景色
        self.bg_color = color

        # 刷新窗口
        self.update()

    def paintEvent(self, event):
        # 繪制背景顏色
        painter = QPainter(self)
        painter.setBrush(QBrush(self.bg_color))
        painter.setPen(Qt.NoPen)
        painter.drawRect(self.rect())  # 填充整個窗口背景

        painter.end()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = ColorPickerApp()
    window.show()
    sys.exit(app.exec_())

取色器2

源代碼參考main2.py, 也可以下載取色器2.exe文件直接使用,無需快捷鍵運行即可使用,應用程序會顯示RGB和16進制顏色編碼。

- 源程序初始化

pip install PyQt5==5.15.10

程序啟動

python main2.py

交互效果

main2.py

import sys
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QColor, QPixmap, QCursor, QPainter, QPen, QBrush
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout

class ColorPickerApp(QWidget):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Color Picker")
        self.setGeometry(100, 100, 300, 200)

        # 創(chuàng)建標簽,用于顯示 RGB 和 16 進制顏色
        self.rgb_hex_label = QLabel("RGB: None\nHex: None", self)

        # 設置標簽樣式和大小
        self.rgb_hex_label.setFixedSize(150, 50)  # 設置固定大小 100x50
        self.rgb_hex_label.setStyleSheet("font-size: 12px; padding: 5px; border-radius: 5px; background-color: white; border: 1px solid black;")

        # 設置布局,使用 QHBoxLayout 和 QVBoxLayout 居中顯示標簽
        layout = QVBoxLayout(self)
        layout.setAlignment(Qt.AlignCenter)  # 設置垂直布局居中
        layout.addWidget(self.rgb_hex_label)
        self.setLayout(layout)

        # 定時器用于定時獲取顏色信息
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update_color)
        self.timer.start(100)  # 每100毫秒更新一次

        # 用來存儲背景顏色
        self.bg_color = QColor(255, 255, 255)  # 默認背景為白色

    def update_color(self):
        # 獲取鼠標位置
        cursor_pos = QCursor.pos()

        # 獲取屏幕截圖并獲取當前鼠標位置的顏色
        screen = QApplication.primaryScreen()
        pixmap = screen.grabWindow(0)
        color = QColor(pixmap.toImage().pixel(cursor_pos))

        # 獲取 RGB 和 16 進制顏色值
        rgb = color.getRgb()
        hex_color = color.name()

        # 更新標簽顯示顏色信息
        self.rgb_hex_label.setText(f"RGB: {rgb[0]}, {rgb[1]}, {rgb[2]}\nHex: {hex_color}")

        # 改變窗口背景色
        self.bg_color = color

        # 刷新窗口
        self.update()

    def paintEvent(self, event):
        # 繪制背景顏色
        painter = QPainter(self)
        painter.setBrush(QBrush(self.bg_color))
        painter.setPen(Qt.NoPen)
        painter.drawRect(self.rect())  # 填充整個窗口背景

        painter.end()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = ColorPickerApp()
    window.show()
    sys.exit(app.exec_())

到此這篇關于使用PyQt5編寫一個簡單的取色器的文章就介紹到這了,更多相關PyQt5取色器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論