所以我有一个使用 PyQt5 gui 的图形工具,并让用户能够为节点着色和命名它们。但是您可以想象,根据您为节点着色的颜色,文本可能难以辨认。因此,如果有办法在 QFont 上获得黑色边框,那么我可以将文本设为白色并使其显示在任何内容上。鉴于框架,这可能吗?
我也愿意接受任何解决能够阅读任何颜色文本的问题的解决方案。谢谢你。
编辑:
from PyQt5 import QtGui, QtWidgets
class MyPushButton(QtWidgets.QPushButton):
def __init__(self, text):
super(MyPushButton, self).__init__()
self.setFixedHeight(50)
self.font = QtGui.QFont()
self.setupFont()
self.setFont(self.font)
self.setStyleSheet('color: white; background-color: yellow')
self.setText(text)
self.clicked.connect(self.change_color)
def change_color(self):
color = QtWidgets.QColorDialog.getColor()
if color.isValid():
self.setStyleSheet('color: white;background-color:' + color.name())
def setupFont(self):
self.font.setFamily('Palatino')
self.font.setPointSize(20)
# some other font manipulations
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
layout = QtWidgets.QVBoxLayout()
push1 = MyPushButton('test text 1')
layout.addWidget(push1)
push2 = MyPushButton('test text 2')
layout.addWidget(push2)
widget.setLayout(layout)
widget.show()
sys.exit(app.exec_())
我想:
相关分类