1
내부 QPainter를하는 방법 나는 QLabel 내부 그리기)합니다 (QPainter를 만드는 방법을 이해할 수 없다, 여기에 내가 일을했을 말했다 코드입니다 :QLabel
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPainter, QColor, QBrush
class Labella(QLabel):
def __init__(self, parent):
super().__init__()
lb = QLabel('text', parent)
lb.setStyleSheet('QFrame {background-color:grey;}')
lb.resize(200, 200)
qp = QPainter(lb)
qp.begin(lb);
qp.setBrush(QColor(200, 0, 0))
qp.drawRect(0,0,20,20);
qp.end();
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.drawRectangles(qp)
qp.end()
def drawRectangles(self, qp):
col = QColor(0, 0, 0)
col.setNamedColor('#040404')
qp.setPen(col)
qp.setBrush(QColor(200, 0, 0))
qp.drawRect(10, 15, 200, 60)
class Example(QWidget):
def __init__(self):
super().__init__()
lb = Labella(self)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Colours')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
난 단지 C에서 예를 찾을 수는 ++와 같은 Qt 문서는 여기에 없으면 정보를 찾아야하는 위치를 알려주십시오.
감사합니다. 그러나이 설정으로 setText()를 작동시킬 수 있습니까? Painter가 켜져있을 때 레이블에 텍스트가 나타나지 않는 것 같습니다. – user3755529
@ user3755529 맞습니다. 죄송합니다. 먼저이 부분을 이해하지 못했습니다.이 문제를 설명하기 위해 파헤칩니다. 레이블의 배경을 다시 그리는 것이 주 목적입니까? – PRMoureu
QLabel에 HTML 표 하위 집합이 있습니다 (QVBoxLayout에 배치 할 레이블이 많이있을 것입니다). 표 아래에 캔버스를 추가하여 QLabel이 식별하는 금융 상품의 52 주 가격 범위에있는 지점을 나타내는 막대를 그립니다. – user3755529