回复: Qpainter如何 绘制如下所示
#6 回 lemonzll 的帖子 [xing181512 01-05 11:20]
lemonzll:void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QTextDocument doc;
....... (2021-01-05 08:59)
再请教下,要是我先在指定区域内绘制,如何实现呢,
#7 [lemonzll 01-05 13:23]
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QTextDocument doc;
QColor textColor = "green";//文字颜色
doc.setDefaultStyleSheet(QStringLiteral("span { background-color: %1}")
.arg(textColor.name()));
doc.setHtml(tr("
Register: Qt for test Qt for test Qt for test Qt for test
"));
doc.setDocumentMargin(1);
auto r = this->rect();
r.setWidth(r.width() / 2);
r.setHeight(r.height() / 2);
r.moveCenter(r.bottomRight()); //构建个画图用的矩形。这里是放在中间的1/4个矩形
painter.drawRect(r); //绘图区域画出来,方便比较
painter.save();
painter.translate(r.topLeft());//平移到画图区域左上角
doc.setTextWidth(r.width());//设置画图区域宽度
//doc.drawContents(&painter, QRect{0, 0, r.width(), r.height()});//加上第二个参数可用来使文字不超过矩形范围,这里演示不启用这个
doc.drawContents(&painter);
painter.restore();
}
把qpainter的坐标平移下再画图就可以了。
#8 回 lemonzll 的帖子
[xing181512 01-05 14:07]
lemonzll:void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QTextDocument doc;
QColor textColor = "green"; //文字颜色
....... (2021-01-05 13:23)
<< 1 2 >> (2/2)
回复 发表
主题 版块