【问题标题】:How to show alpha channel in PyQt5 QColorDialog如何在 PyQt5 QColorDialog 中显示 alpha 通道
【发布时间】:2020-04-19 12:43:02
【问题描述】:

我试过这段代码:

def open_color_dialog(self, label):
    dialog = QColorDialog()
    dialog.setOption(QColorDialog.ShowAlphaChannel, on=True)
    print(dialog.testOption(QColorDialog.ShowAlphaChannel)) #returning True
    color = dialog.getColor()

    if color.isValid():
        label.setStyleSheet("background-color:" + color.name() + ";")

但是这段代码不起作用。如何显示 Alpha 通道?

【问题讨论】:

    标签: python python-3.x pyqt pyqt5 qcolordialog


    【解决方案1】:

    问题是:

    • QColorDialog 类的dialog 对象已创建,但您使用静态QColorDialog::getColor() 方法创建一个新的显示的QColorDialog 对象。

      def open_color_dialog(self, label):
          dialog = QColorDialog()
          dialog.setOption(QColorDialog.ShowAlphaChannel, on=True)
          if dialog.exec_() == QDialog.Accepted:
              color = dialog.selectedColor()
              if color.isValid():
                  # ...
      

      def open_color_dialog(self, label):
          color = QColorDialog.getColor(options=QColorDialog.ShowAlphaChannel)
          if color.isValid():
              # ...
      
    • QColorDialog的name方法默认只返回rgb,如果要获取argb则必须使用QColor.HexArgb作为参数:

      label.setStyleSheet(
          "background-color:{};".format(color.name(QColor.HexArgb))
      )
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2012-04-08
      相关资源
      最近更新 更多