QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent。

来源: http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=1277&uid=139581

 

 


来源:http://blog.csdn.net/dbzhang800/article/details/6741344?reload
操作:


frameGeometry()


几何尺寸(位置+大小)


对于窗口,包含窗口装饰器


x()y()pos()


只包含位置信息(左上角坐标)


move()


只移动位置


geometry()


几何尺寸(位置+大小)


不包含窗口装饰器


width()height()rect()size()


只包含大小信息


setGeometry()


改变位置+大小


resize()


只改变大小



一直在考虑怎么使中心窗口在主窗口全屏之后,中心窗口也按比例放大。
其中包括,中心窗口的大小适应,中心窗口
1.创建你的UI,其中使用弄好你的顶级布局,选中widget窗口 - 点击右键 - 布局 - 栅格布局。

2.构造函数中

复制代码

  1.   centralWidget = new QWidget;
       QWidget * a = new QWidget(centralWidget);
       ui1->setupUI(a);
         a->hide();
       QWidget * b = new QWidget(centralWidget);
       ui2->setupUI(b);
         b->hide();
       setCentralWidget(centralWidget) //
    这样的好处在于,你可以弄很多ui,想使用哪个UI直接uin->setupUI(widgetn),widgetn->show()就可以了。



3.但是如果你想拖动主窗口的时候,能够让窗口中的组件随着窗口也能缩放的话,需要重写resizeEvent,原因在于,在构造之后,子窗口的大小就是固定的。

复制代码

  1. void resizeEvent(QresizeEvent* size){
        centralWidget->resize(frameGeometry().size()); //
    是采用size()还是frameGeometry.size()根据自己的需求。
    }



有什么问题,请留言说明,大家一起交流并且解决。

附加设备相关的屏幕尺寸信息,如果你重写resizeEvent的话,我认为这是不必要的。
QDesktopWidget* desktopWidget = QApplication::desktop();
//
得到客户区矩形
QRect clientRect = desktopWidget->availableGeometry();
//
得到应用程序矩形
QRect applicationRect = desktopWidget->screenGeometry();

 

 

  • 12
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值