QT 一个控件的坐标怎么相对固定显示在另一个控件上(坐标系)

先给子控件设置它依赖于哪一个控件上显示

void setTableViewParent(QWidget *parent = 0);

void ComplexCombox::setTableViewParent(QWidget *parent)
{
    m_tableView->setParent(parent);
    m_tableView->setVisible(false);
}

设置坐标的时候,就会相对那个控件的坐标显示

m_tableView->setGeometry(x,y,414,290);

示例:

complexCombox->setTableViewParent(ui->groupBox_3);
complexCombox->setTableViewPos(ui->groupBox_3->pos().x()+15,ui->groupBox_3->pos().y()+150);
       

这样的话,不管怎么移动窗口,tableview显示的坐标都跟着groupBox的坐标而移动。

补充一下QT里坐标系的知识:

  • 绝对位置:相对于桌面窗口原点(0,0)的位置
  • 相对位置:相对于应用程序原点(0,0)的位置

与鼠标位置有关的3个方法

  • QCursor::pos() 的结果是鼠标相对于桌面的绝对位置
  • mousePressEvent的参数event的位置,event->pos() 是鼠标相对于应用程序的位置
  • event->globalPos() 相对于桌面原点的位置,绝对位置

示例:

void Qt_Pos::MainWindow(QMouseEvent* event)
{
    QPoint p1 = QCursor::pos();
    QString str1 = QString::number(p1.x()) + " , " + QString::number(p1.y());
   

    QPoint p2 = event->pos();
	QString str2 = QString::number(p2.x()) + " , " + QString::number(p2.y());
	

	QPoint p3 = event->globalPos();  //相对于桌面原点的位置
	QString str3 = QString::number(p3.x()) + " , " + QString::number(p3.y());
	
}

Qt是如何获取控件的相对位置示例:

QPoint p4 = ui.pushButton->pos();  //按钮控件相对于窗口原点的位置

 Qt是如何获取控件的绝对位置示例:

QPoint p5 = ui.pushButton->mapToGlobal(QPoint(0, 0));   //按钮相对于桌面原点的绝对位置

控件的大小:

QRect rect = ui.pushButton->rect();
QString str6 = QString::number(rect.width()) + " , " + QString::number(rect.height());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼2333号程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值