#ifndef VAR_H
#define VAR_H
extern int px;
extern int py;
#endif
#include "var.h"
int px;
int py;
#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(); // 添加槽函数
}
...
void QtGuiApplication2::showDlg()
{
// ViewerWidget是自定义的类
ViewerWidget* viewWidget = new ViewerWidget(0, Qt::Widget, osgViewer::ViewerBase::SingleThreaded);
viewWidget->setGeometry(px+100, py+100, 800, 600); // 设置相对父窗口的位置
viewWidget->show();
}
网友评论