【问题标题】: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))
)