addText() 更改 QGraphicsView 内的文本颜色

Tra*_*war 5 python pyqt4 qgraphicsview python-2.7

我设法在 QGraphicsView 中制作一个垂直文本标签,该标签是从 showGui.UI 导入的。一切都正是我想要的,除了我不知道如何改变文本颜色。setStyleSheet 不适用于 QGraphicsViews。我再次尝试使用 QPainter,但无法使其正确旋转或在图形视图内旋转。我找到的所有文档都是用 C++ 编写的,这让我感到困惑。我认为添加:

  self.trans_graphicsView_cat.drawForeground(QPainter(setPen(QtGui.QColor(168, 34, 3)))
Run Code Online (Sandbox Code Playgroud)

进入 createScene 函数就可以做到这一点,但我还无法破解它。

我的代码:

class MainDialog(QtGui.QMainWindow, showGui.Ui_MainWindow):
    dbPath = appDataPath + "barter.db"
    dbConn = sqlite3.connect(dbPath)
    dbConn.text_factory = str



def __init__(self, parent=None):
    super(MainDialog, self).__init__(parent)
    self.setupUi(self)

    self.text = self.tr("Categories")
    self.createScene()

def createScene(self):
    scene = QtGui.QGraphicsScene()
    self.trans_graphicsView_cat.setScene(scene)
    item = scene.addText(self.text, QtGui.QFont('Arial Black', 15, QtGui.QFont.Light))
    item.rotate(270)
Run Code Online (Sandbox Code Playgroud)

ekh*_*oro 2

addText方法返回一个QGraphicsTextItem。此类有一个setDefaultTextColor方法,该方法允许您更改文本的颜色。

或者,您可以创建自己的实例QGraphicsTextItem,然后使用addItem将其添加到场景中。请注意,该类QGraphicsTextItem有一个setHtml方法,它可以让您更好地控制文本的格式。