QT开发中文网

绘制经过坐标点(x=100,y=100)的直线

要在 Qt 中绘制经过特定坐标点 (x=100, y=100) 的直线,您可以修改之前的示例,以便在特定事件中始终绘制这条直线。下面是一个示例代码,演示如何实现这一点:

#include <QApplication>
#include <QWidget>
#include <QPainter>

class DrawingWidget : public QWidget {
    Q_OBJECT

public:
    DrawingWidget(QWidget *parent = nullptr)
        : QWidget(parent) {
        setFixedSize(800, 600); // 设置窗口大小
    }

protected:
    void paintEvent(QPaintEvent *event) override {
        Q_UNUSED(event);

        QPainter painter(this);
        painter.setPen(QPen(Qt::black, 1)); // 设置线条颜色和宽度
        
        // 绘制经过 (100, 100) 的直线
        QPoint startPoint(0, 0);   // 起点可以设置为任何位置
        QPoint endPoint(200, 200);  // 终点可以设置为任何位置

        // 实际上这里你可以根据需要计算起止点,比如:
        startPoint = QPoint(0, 0);       // 可以调整起点
        endPoint = QPoint(400, 400);     // 根据需要调整终点

        painter.drawLine(startPoint, endPoint);
        
        // 如果要确保线段通过 (100, 100),可手动计算或者做判断。
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    
    DrawingWidget w;
    w.show();

    return app.exec();
}

代码说明:

  1. DrawingWidget 类是自定义的 QWidget,重载了 paintEvent() 方法以进行绘图。
  2. paintEvent() 中,我们创建一个 QPainter 对象,并使用它来绘制一条直线。
  3. 在此示例中,我们假设了一条从 (0, 0)(400, 400) 的直线。这会穿过 (100, 100) 点。如果需要确保精确穿过,可以对起始和结束坐标进行具体选择或计算。

确保通过 (100, 100):

如果您希望所有绘制的直线都保证经过 (100, 100) 点,则可以根据需要调整其他参数,例如起始和结束坐标。通常情况下,可以简单地使用类似以下方式:

// 创建经过 (100, 100) 的两条不同方向的直线作为示例:
painter.drawLine(QPoint(0, 200), QPoint(200, 0));   // 从左到右的斜线 
painter.drawLine(QPoint(300, 500), QPoint(-200 , -300));   // 从下到上的斜线 

如上所述,这里只是给出一种方法。在实际应用中,可能会根据具体需求进一步处理这些坐标。


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 代码说明:
  • 确保通过 (100, 100):
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=12675

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?