网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月28日漏签0天
qt吧 关注:49,799贴子:159,567
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回qt吧
>0< 加载中...

qt 做界面时怎样不使用布局实现最大化

  • 只看楼主
  • 收藏

  • 回复
  • phleee
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
使用qt 的自动布局能够比较方便的实现最大化同时使界面上的控件合理的调整,但是使用布局最大的限制就是你不能手动的调整每个控件在界面中的位置和大小了, 这样对于界面比较复杂,既有水平布局,又有垂直布局的,甚至水平布局垂直布局有交叉,同时又不是栅格布局的情况下使用它的布局来实现最大化就显得问题多多了。
使用后很难控制每个控件的位置,很容易界面变得乱七八糟。(对于简单的界面使用自动布局还是很方便的)
我是通过如下办法实现最大化的:
1、将界面中的控件全都放在Containers中,我使用的是Widget 控件
2、在实现最大化的时候调用
this->setWindowState(Qt::WindowState::WindowFullScreen); 3、获取最大化后屏幕的像素 const QRect rc = QApplication::desktop()->availableGeometry(); int fullWidth = rc.width(); int fullHeight = rc.height(); //屏幕的高度
注意这个方法已经将任务栏的像素去掉(这一点觉得qt做的很不错)如果想遮挡住任务栏真正全屏,比这个要简单。
4、之后基本上就是这三个函数重复调用 挨个重绘每个 widget的位置和大小。
ui->widgettitle2->setFixedWidth( fullWidth - widthTitle3 - (ui->widgettitle1->width())); //设置最大化后控件的宽度 ui->widgettitle3->move( fullWidth - widthTitle3 ,0); // 设置最大化后控件的坐标 ui->widgetlift2->setFixedHeight( fullHeight - 40 - 234 ); //设置最大化后控件的高度 5、这样大体上就完成了最大化,再将每个widget上的小控件调整一下位置和大小就完成了。 是不是很简单。。。。


  • 榨菜炒肉丝
  • 人气楷模
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
还不错,为啥要重复调用?直接在窗体大小改变时再重绘不行吗?我觉得要实现楼主所说的那些布局的话用qml最方便


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回qt吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示