当前位置: 代码迷 >> QT开发 >> qt中,子窗口怎么得到父窗口的当前坐标?qwidget parent
  详细解决方案

qt中,子窗口怎么得到父窗口的当前坐标?qwidget parent

热度:470   发布时间:2016-04-25 03:09:55.0
qt中,子窗口如何得到父窗口的当前坐标?qwidget parent
本帖最后由 yimi0903 于 2014-10-22 15:14:19 编辑
我有两个窗口A、B,都继承自QDialog,现在要做的是,B作为A中QStackedWidget的一个页面插入,并且A为B的父窗口,但是当我在B中像得到A的当前坐标的时候,却出错了。下面是我简写的代码:

A中加入B窗口:
B *b= new B(this);
ui.stackedWidget->addWidget(m_b);

B中设A为父窗口:
B::B(QWidget* parent)
{
    this->setParent(parent);
}

B中取得A(即父窗口)的坐标:
qDebug() << this->parent()->x();
//这里就报错了,错误是“error C2039: “x”: 不是“QObject”的成员”。

我该如何得到父窗口的当前坐标呢?本人菜鸟,请大神现身相助

------解决思路----------------------
this->parent()返回的是一个QObject的指针,你需要转换成父窗口的QWidget,你试试下面的
qDebug()<<((QWidget *)(this->parent()))->geometry();
------解决思路----------------------
引用:
他返回的是QStackedWidget在A中的坐标信息。


你的结构是A->QStackWidget->B这样的?那A的父窗口就是QStackWidget啊,如果要得到B的坐标,再获取一次父窗口就可以了
this->parentWidget()->parentWidget()->geometry();
  相关解决方案