2014-12-22 2 views
2

showGui.UI에서 가져온 QGraphicsView 내에서 세로 텍스트 레이블을 만들었습니다. 텍스트 색상을 변경하지 못한다는 것을 제외하고는 모든 것이 정확히 내가 원하는 방식입니다. setStyleSheet는 QGraphicsViews에서 작동하지 않습니다. 나는 QPainter와 함께 또 다른 시도를했지만 그걸 올바르게 또는 내 그래픽보기의 내부로 기울일 수는 없었다. 내가 찾은 모든 문서는 C++로되어있어 그게 당혹 스럽다. 나는 추가를 생각해 :addText() QGraphicsView 내부의 텍스트 색상 변경

self.trans_graphicsView_cat.drawForeground(QPainter(setPen(QtGui.QColor(168, 34, 3))) 

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) 

답변

0

addText 방법은 QGraphicsTextItem을 반환합니다. 이 클래스에는 텍스트의 색을 변경할 수있는 setDefaultTextColor 메서드가 있습니다.

또는 직접 QGraphicsTextItem의 인스턴스를 만든 다음 addItem을 사용하여 장면에 추가 할 수 있습니다. QGraphicsTextItem 클래스에는 setHtml 메서드가있어서 텍스트의 서식을보다 강력하게 제어 할 수 있습니다.

+0

첫 번째 제안은 트릭을했습니다! 두 번째 대안을 더 잘 이해하고 싶지만 파이썬으로 작성된 코드 예제를 봐야 할 것 같습니다. 당신은 이미 충분히 했어요! 다시 한 번 감사 드리며 아래 작업 코드를 게시했습니다. – Tralawar