美文网首页
使用全局变量获取父窗口坐标

使用全局变量获取父窗口坐标

作者: downdemo | 来源:发表于2018-08-07 15:53 被阅读17次
  • var.h
#ifndef VAR_H
#define VAR_H

extern int px;
extern int py;

#endif
  • var.cpp
#include "var.h"
int px;
int py;
  • main.cpp
#include "QtGuiApplication.h"
#include <QtWidgets/QApplication>
#include "var.h"

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QtGuiApplication w;
    w.show();
    // 在显示之后获取,否则坐标为(0, 0)
    px = w.x();
    py = w.y();
    return app.exec();
}
  • 此时坐标已获取,在其他窗口中包含var.h直接使用即可
  • QtGuiApplication.h(即主窗口)
#include "var.h"
...

class QtGuiApplication : public QMainWindow
{
    ...
private slots:
    void showDlg(); // 添加槽函数
}
  • QtGuiApplication.cpp
...

void QtGuiApplication2::showDlg()
{
    // ViewerWidget是自定义的类
    ViewerWidget* viewWidget = new ViewerWidget(0, Qt::Widget, osgViewer::ViewerBase::SingleThreaded);
    viewWidget->setGeometry(px+100, py+100, 800, 600); // 设置相对父窗口的位置
    viewWidget->show();
}

相关文章

网友评论

      本文标题:使用全局变量获取父窗口坐标

      本文链接:https://www.haomeiwen.com/subject/rqravftx.html