我正在尝试放置带坐标的文本,但我不知道如何引入参数。 我在网上搜索,只有Qt.Allign ----的例子,如果我把参数放在文档中,我就会收到错误。 它是用Python 3.6中的PyQt5构建的。
import sys
from PyQt5.QtCore import QTimer, Qt, QRectF
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QVBoxLayout, QHBoxLayout
from PyQt5.QtGui import QColor, QFont, QPainter
class Window(QWidget):
def __init__(self):
super().__init__()
self.stopwatch()
def stopwatch(self):
hbox = QHBoxLayout()
self.setLayout(hbox)
self.setWindowTitle("Example")
self.setGeometry(400,400,400,200)
self.formato = "0:00.0"
self.show()
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
self.draw_rect(event, qp)
qp.end()
def draw_rect(self,event, qp):
#Black Rectangle
col = QColor("Black")
col.setNamedColor("Black")
qp.setPen(col)
qp.setBrush(QColor("Black"))
qp.drawRect(130,000,400,200)
#formato
qp.setPen(QColor("Green"))
qp.setFont(QFont('Helvetica', 48))
qp.drawText(event.rect(), QRect(50, 50, 50, 50),5 , self.formato) # Problem
app = QApplication(sys.argv)
w = Window()
sys.exit(app.exec_())
PD:请忽略其他错误,这只是我正在构建的程序中的一个片段。对不起,如果这可能是一个新手的问题。
答案 0 :(得分:0)
QPainter提供了几种绘制文字的选项:
void drawText(const QPointF & position, const QString & text)
void drawText(const QPoint & position, const QString & text)
void drawText(const QRectF & rectangle, int flags, const QString & text, QRectF * boundingRect = 0)
void drawText(const QRect & rectangle, int flags, const QString & text, QRect * boundingRect = 0)
void drawText(int x, int y, const QString & text)
void drawText(int x, int y, int width, int height, int flags, const QString & text, QRect * boundingRect = 0)
void drawText(const QRectF & rectangle, const QString & text, const QTextOption & option = QTextOption())
在您的情况下,您应该使用:
qp.drawText(QPointF(50, 50), self.formato) # first option
qp.drawText(QPoint(50, 50), self.formato) # second option
qp.drawText(50, 50, self.formato) # fifth option
注意:导致窗口关闭的错误是因为您传递的参数与任何表单都不对应。