如何在 PyQt5 QColorDialog 中显示 alpha 通道
How to show alpha channel in PyQt5 QColorDialog
我试过这个代码:
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 通道?
问题是:
已创建 QColorDialog class 的 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
方法默认只会return只有rgb,如果你想得到argb那么你必须使用QColor.HexArgb作为参数:
label.setStyleSheet(
"background-color:{};".format(color.name(QColor.HexArgb))
)
我试过这个代码:
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 通道?
问题是:
已创建 QColorDialog class 的
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
方法默认只会return只有rgb,如果你想得到argb那么你必须使用QColor.HexArgb作为参数:label.setStyleSheet( "background-color:{};".format(color.name(QColor.HexArgb)) )