当逻辑坐标很小且为分数时,可以通过以下步骤来设置QPainter窗口:
MyWindow::MyWindow(QWidget *parent) : QMainWindow(parent)
{
setFixedSize(800, 600); // 设置窗口大小为800x600
setWindowTitle("My Window"); // 设置窗口标题为"My Window"
}
void MyWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
// 设置逻辑坐标系
painter.setRenderHint(QPainter::Antialiasing); // 抗锯齿
painter.setWindow(0, 0, 1, 1); // 设置逻辑坐标系的范围为[0, 1]x[0, 1]
// 绘制图形
painter.drawLine(QPointF(0.2, 0.2), QPointF(0.8, 0.8));
painter.drawRect(QRectF(0.3, 0.3, 0.4, 0.4));
painter.drawText(QPointF(0.5, 0.5), "Hello, World!");
}
在上述代码中,通过调用painter.setWindow函数来设置逻辑坐标系的范围为[0, 1]x[0, 1],表示逻辑坐标系的宽度和高度都是1。然后使用QPainter的绘图函数来绘制图形,这些函数的参数都是逻辑坐标。
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWindow window;
window.show();
return app.exec();
}
通过以上步骤,就可以设置一个QPainter窗口,使其适应逻辑坐标很小且为分数的情况。在绘图时,可以使用逻辑坐标进行精确的定位和绘制。
领取专属 10元无门槛券
手把手带您无忧上云