当前位置:网站首页>Qt QWidget嵌套相对位置获取 (qt 画线 嵌套)
Qt QWidget嵌套相对位置获取 (qt 画线 嵌套)
2022-06-23 03:56:00 【超自然祈祷】
使用函数
QPoint QWidget::mapToGlobal(const QPoint &pos) const
.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
void paintEvent(QPaintEvent *);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.setPen(Qt::blue);
p.drawLine(ui->pushButton->pos(),ui->pushButton_3->pos());
p.setPen(Qt::red);
p.drawLine(ui->pushButton->pos(),ui->pushButton_2->pos());
p.setPen(Qt::green);
p.drawLine(ui->pushButton->pos(), ui->pushButton_2->mapToGlobal( QPoint(0,0) - this->mapToGlobal( QPoint(0,0)) ));
}
.ui文件 和 运行结果 截图

按代码上的颜色分辨
pushButton_3、pushButton 是同级,都在界面上(蓝色线位置正确)
pushButton_2 是在一个widget里嵌套的 使用pushButton_2->pos()得到的是它在方框中的位置,所以连线位置出错(红色线)
而绿色线是使用mapToGlobal函数,窗口、pushButton_2都相对于显示器的位置,这样计算的位置就正确了。
边栏推荐
- 【微服务|Nacos】Nacos版本相关问题一览
- Three methods of GNSS velocity calculation
- Missing essential plugin
- 第九章 APP项目测试(1)
- 小时候 觉得爸爸就是天 无所不能~
- Open source ecology 𞓜 super practical open source license basic knowledge literacy post (Part 2)
- pygame音乐相关的功能实现
- Zygote process
- pkav简单爆破
- UI automation positioning edge -xpath actual combat
猜你喜欢
随机推荐
Implementation of the rotation chart
JVM原理之内存模型
[microservices | Nacos] list of issues related to the Nacos version
A bug in rtklib2.4.3 B34 single point positioning
关于信息泄露和防御
左侧固定,右侧自适应 三种实现办法(Flex,float + BFC ,float-margin-left)
JDBC入门学习(一)之DML操作
投资风险管理
JVM原理之完整的一次GC流程
MMDeploy快速安装及使用说明
STP总结
BGP第二次试验
牛B程序员在“创建索引”时都会注意啥?
软件项目管理 8.4.软件项目质量计划
JVM原理之完整的一次GC流程
Complete the primary school project in 3 days, and teach you to complete the weather broadcast system hand in hand!
Jetpack compose menubar Desktop Menu from door opening to entry
戏问花门酒家翁
Servlet self study notes
ES6的Array.from方法创建长度为N的undefined数组









