QT子窗口显示在父窗口中间(备忘)

方法一: 

/*this为主窗口指针 showPanel为子窗口指针*/
QPoint globalPos = this->mapToGlobal(QPoint(0,0));//父窗口绝对坐标
int x = globalPos.x() + (this->width() - showPanel->width()) / 2;//x坐标
int y = globalPos.y() + (this->height() - showPanel->height()) / 2;//y坐标
showPanel->move(x, y);//窗口移动 

方法二: 

QWidget *widget = nullptr;
//获取程序所有的widget
QWidgetList widgetList = QApplication::allWidgets();
//获取父窗口指针 此处获取objectName 可根据需求自行判断
for(int i=0; i<widgetList.length(); i++){
    if(widgetList.at(i)->objectName() == "MainWindow"){
        widget = widgetList.at(i);
    }
}
if(widget){
 //获取父窗口geometry
    QRect rect = widget->geometry();
    //计算显示原点
    int x = rect.x() + rect.width()/2 - this->width() /2;
    int y = rect.y() + rect.height()/2 - this->height();
    this->move(x, y);
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值