`
qimo601
  • 浏览: 3449286 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

QT界面大小自动变化

阅读更多

这篇文档是我用了Qt一个月后,回来补充的。

问题:很多朋友刚用Qt,当我们把界面控件摆好后,再加layout布局,界面会发生很大变形。就算不变形,窗口放大缩小后,控件还是不随着窗口发生变化,这个问题也困扰了我好几天。问题如下图所示:

 

 

解决方法:

网上朋友提供的解决方案很多,实际都能解决问题。总的来说有以下两种方式:

1、最简单的方法,还是QtDesigner直接布局。

     在VS中用Qt创建窗口时候,一般它自动给你生成了一个centralWidget,所有的控件都是在这个上面摆放的。

     所以我们只需要把所有控件摆放在每个Layout中,肯定没问题,我的上面例子是因为我每个GroupBox里面的控件都用Layout布局好了,外面的centralWidget也用了个VBoxLayout布局了。但是我的每个GroupBox没有放在layout中,所以当我最后选择centralWidget布局VBoxLayout时候,出现了界面混乱。

 

      我们应该给每一个GroupBox一个单独的布局。这样就不会出问题了。界面可以自由缩小和放大了。

     总结来说:只要在QtDesigner中,所有的控件全部放在Layout中布局,并在最外面的centralWidget里也放一个布局,加上我们可用的spacing和Margining,基本上就可以满足我们的布局需求了。

 

2、第二种方法就是网上所说的Qt重绘事件QWidget::ResizeEvent 以及Resize()和setGeometry()函数的运用。

这个一般是在界面动态发生改变时候必须用的。

 

     我后期再慢慢总结这块。。。。

 

 

另外,界面缩小放大后,所有控件可以跟着自动缩小和变化了。但是它的缩小放大的机制和每一个布局和控件中的属性相关,否则布局虽然没变,但是大小变化的并不好看!

 

布局中的属性:margining spacing stretch等可以看这篇文章

QLayout的属性介绍

 

控件的布局,大小变化的属性:介绍可以看这篇文章:

【转】如何在Qt 4程序中优化布局结构-兼回答网友提问

 

 

参考文章:

解决Qt Designer中的Form的内容不随着Form一起缩放的问题

QT布局管理器使用心得及引发的思考

分享到:
评论

相关推荐

    QT界面怎么使控件随窗口大小变化一直居中显示-百度经验1

    QT界面设计中,让控件随窗口大小变化一直居中显示是常见的需求,这涉及到QT中的布局管理(Layout Management)机制。QT是一个流行的跨平台应用开发框架,它提供了丰富的控件和灵活的布局管理功能,使得开发者能够...

    Qt界面 获取widget位置大小并与其他widget切换位置大小

    "Qt界面获取Widget位置大小并与其他Widget切换位置大小"这个主题涉及到如何动态地改变和管理Widget的位置和尺寸,以及如何通过交互来实现它们之间的切换。在VS2013环境下开发Qt应用时,这些操作对于创建灵活、响应式...

    QT 控件自动缩放

    这个特性主要通过使用Qt的布局管理器和样式表(QSS)来实现,同时,Qt的QResizeEvent事件也可以帮助我们处理窗口大小变化时的动态调整。 首先,Qt的布局管理器(如QVBoxLayout、QHBoxLayout、QGridLayout等)能够...

    QT widget控件自适应窗口大小,修改比例

    在设计用户界面时,我们常常需要使这些控件能够自适应窗口大小的变化,以便于在不同分辨率的屏幕上提供良好的显示效果。本文将详细讲解如何实现QT Widget控件的自适应窗口大小以及调整其比例。 首先,我们需要了解...

    Qt用户界面设计PPT.rar_QT_QT界面_qt ppt_qt 界面_qt 界面设计

    5. **布局管理**:Qt的布局管理器(QLayout)允许你自动调整控件的位置和大小,以适应不同屏幕尺寸和窗口大小的变化。你可以使用垂直布局(QVBoxLayout)、水平布局(QHBoxLayout)或网格布局(QGridLayout)等。 6...

    QT界面纯代码与控件布局学习

    QT界面设计是软件开发中的一个重要环节,特别是在桌面应用领域,QT框架因其强大的功能和跨平台特性而备受青睐。本资源提供了两种不同的QT界面布局方法的学习资料:托控件布局和纯代码实现界面布局。 首先,我们来...

    Demo,测试字体大小随着控件大小自适应变化

    在IT行业中,尤其是在GUI(图形用户界面)设计与开发中,如何使文本内容随着控件尺寸的变化自动调整字体大小是一项重要的技术。这个“Demo,测试字体大小随着控件大小自适应变化”就是一个针对这一需求的具体实例。...

    quitool_QT_qt界面漂亮_QT界面美化_qt漂亮界面_QTUI_源码.rar

    "quitool_QT_qt界面漂亮_QT界面美化_qt漂亮界面_QTUI_源码.rar"这个压缩包文件显然包含了使用QT框架进行界面设计和美化的示例源码。 在QT中,界面设计主要依赖于两种方式:一是使用Qt Designer进行图形化设计,二是...

    QT专业医疗界面仪器设计

    1. **Qt Widgets与布局管理**:了解如何使用QWidget类及其子类(如QPushButton、QLabel等)创建基本的界面元素,并通过QLayout管理器实现元素的自动排列和调整大小,以适应不同屏幕尺寸。 2. **信号与槽机制**:...

    Qt text.rar_QT UI_QT界面_expect8og_qt 界面

    另外,还要掌握布局管理器,如QVBoxLayout、QHBoxLayout和QGridLayout,它们帮助自动调整控件的位置和大小以适应窗口的变化。 在"Qt text"这个文件中,可能包含了关于Qt文字显示和处理的示例或教程。Qt提供...

    qt 自适应类,可以自适应调整控件字体大小,间距等

    qt 适应分辨率,自适应类,可以自适应调整控件字体大小,间距等。控件和窗口,针对分辨率和窗口变化,进行变化适应。是布局的不错的补充,利用好了,控件伸缩自如。

    QT 窗体、控件、字体自适应分辨率

    一种常见的方法是利用布局管理器(QLayout),它可以自动调整控件的位置和大小以适应窗口的变化。例如,使用QVBoxLayout、QHBoxLayout或QGridLayout可以确保控件在窗体拉伸时按预期排列。 当涉及到字体自适应时,QT...

    qt 无窗口边框界面

    可以使用`resizeEvent()`来监听窗口大小变化,并更新内容区域。另外,可以添加边缘拖动区域来实现类似有边框窗口的缩放效果。这通常需要在窗口的边缘绘制特殊图形,并处理相应的鼠标事件。 在调用系统API方面,Qt...

    Qt实现窗体缩放

    Qt是一个强大的C++库,用于创建跨平台的图形用户界面(GUI)应用。它提供了丰富的API和工具,使得开发者能够轻松地设计和实现各种复杂的UI功能,其中包括窗口的缩放。 首先,了解Qt中的窗体(Widget)是关键。一个...

    Qt表头随着窗体等比例缩放

    在Qt编程中,创建用户界面(UI)时,我们经常需要设计可以响应窗口大小变化的组件,例如表格视图(QTableView)。标题提到的“Qt表头随着窗体等比例缩放”是一个关键的交互特性,它使得应用程序更加美观且用户友好。...

    窗体控件大小随窗体的大小而自动变化

    标题"窗体控件大小随窗体的大小而自动变化"所涉及的知识点是窗体的布局管理和控件的自动调整。这个功能使得用户在调整窗体大小时,窗体上的控件如按钮、文本框等能够根据新的窗体尺寸自动调整大小,以保持界面的视觉...

    基于QT的界面滑动切换

    - **布局管理**:`QLayout`类用于自动调整控件的位置和大小,确保界面在不同分辨率和屏幕尺寸下都能保持良好的视觉效果。 - **绘图系统**:通过`QPainter`和`QPaintEvent`,开发者可以定制自己的界面元素,实现独特...

    Qt自定义/最大化/最小化/关闭 完整例程-按钮跟随界面大小移动

    在本文中,我们将深入探讨如何使用Qt库来创建一个具有自定义、最大化、最小化和关闭功能的窗口,并且按钮会随着窗口大小的改变而自动调整位置。这是一项常见的任务,对于开发桌面应用程序来说非常重要。Qt是一个跨...

    QT实现高仿QQ QT实现QQ界面

    3. **布局管理(Layout Management)**:QT提供QHBoxLayout、QVBoxLayout、QGridLayout等布局管理器,使得窗口中的控件可以根据窗口大小自动调整位置和大小。在实现QQ界面时,会用到这些布局来保持界面的整洁和适应...

    qt窗口自适应v2.0

    1. **QLayout**:Qt的布局管理器(如QVBoxLayout, QHBoxLayout, QGridLayout等)可以自动调整控件的大小和位置,以适应窗口的变化。当窗口大小改变时,布局会重新计算并调整其内部控件的大小。 2. **QWidget::...

Global site tag (gtag.js) - Google Analytics