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