• sizeHint
    这个属性所保存的 QSize 类型的值是一个被推荐给窗口或其它组件(为了方便下面统称为widget)的尺寸,也就是说一个 widget 该有多大,它的一个参考来源就是这个 sizeHint 属性的值,而这个值由 sizeHint() 函数来确定。但是 widget 的大小的确定还有其它因素作用,下面会讲到。现在只需知道 sizeHint() 会返回一个被推荐的尺寸。那么这个尺寸的取值是怎样的呢?当它是一个无效值的时候(sizeHint().isValid() 返回 false,QSize 中 width 或者 height 有一个为复数就会是无效的),什么作用也没有;当它是一个有效值的时候,它就成了 widget 大小的一个参考。Qt 中对 sizeHint() 的默认实现是这样的:当 widget 没有布局(layout),返回无效值;否则返回其 layout 的首选尺寸
  • 例1:
     QWidget *widget = new QWidget;widget->show();qDebug() << widget->width() << "," << widget->height();qDebug() << widget->sizeHint().width() << "," << widget->sizeHint().height();//output://1009 , 520//-1 , –1
    

    输出结果中第二行:sizeHint() 返回的是一个无效的 QSize,因为 widget 没有布局。

  • 例2:
        QWidget *widget = new QWidget;QHBoxLayout *layout = new QHBoxLayout;QPushButton *button = new QPushButton("Ggicci");layout->addWidget(button);widget->setLayout(layout);widget->show();qDebug() << widget->width() << "," << widget->height();qDebug() << widget->sizeHint().width() << "," << widget->sizeHint().height();qDebug() << button->width() << "," << button->height();

       1: //output:
       2: //112 , 45 
       3: //97 , 45 
       4: //90 , 23
    

    输出结果中第一行:widget 的实际尺寸 (112, 45);
    输出结果中第二行:sizeHint() 返回 layout 的首选尺寸(97,45)供 widget 参考;
    输出结果中第三行:中间 button 的实际大小;
    从输出结果中可以证明以上说过的两点:
    1) 在 widget 有 layout 的情况下,其 sizeHint() 函数返回的是有效值作为其自身实际尺寸的参考;
    2) sizeHint() 返回的值并不一定会作为 widget 的实际尺寸,因为 widget 的尺寸的决定还有其它因素作用;

    详情请参考:http://www.tuicool.com/articles/uyaYn2

转载于:https://www.cnblogs.com/haoyuanyuan/p/3835971.html

Qt中的 Size Hints 和 Size Policies相关推荐

  1. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...

    [单选题]李明在他所属的公司工作五年,每天都很认真地处理繁杂的事情,同事们都夸他认真,但是依然没有建树,这是因为: [多选题]品牌标志的作用表现在 [单选题]新产品开发的第一个阶段是_______. ...

  2. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...

    [单选题]文本文件存储的是(),由若干文本行组成,通常每行以换行符 '\n' 结尾.(4.0分) [单选题]()属性是返回被打开文件的访问模式.(4.0分) [单选题]重力坝是由砼或( )修筑而成的大 ...

  3. Mtk Camera中Hal1/Hal3的Picture size和Preview size配置

    在进行camera系统开发时,总会碰到产品需要,需要一个添加一个多少多少M的照片大小,比如产品经理说我们也要添加一个1:1,添加一个18:9的照片大小.这个情况很常见了,所以这篇文章总结一下平常工作中 ...

  4. python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解

    一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...

  5. MATLAB里面size什么意思,matlab中的size(A,2)==size(B,1)是什么意思

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:matlab中的size(A,2)==size(B,1)是什么意思?回答:size返回矩阵的行数或列数.size(A,2)返回的是矩 ...

  6. C++中的stack类、QT中的QStack类

    C++中的stack 实现一种先进后出的数据结构,是一个模板类. 头文件 #include<stack> 用法(以int型为例): stack <int> s; //定义一个i ...

  7. Qt中多线程间的互斥

    文章目录 1 多线程间的互斥 1.1 生产消费者问题 1.2 QMutex 1.3 死锁问题 1.4 信号量 1 多线程间的互斥 值得思考的问题: 多个线程间除了在时序上可能产生依赖,在其它方面是否也 ...

  8. 在Qt中使用C++代码创建界面

    好儿郎~志在四方 Qt视频教程地址:http://space.bilibili.com/84360636/#!/index 目录视图 摘要视图 订阅 图灵赠书--程序员11月书单    [思考]Pyt ...

  9. Qt 中容器类型的控件

    转载:https://subingwen.cn/qt/qt-containers/ 1.QWidget 这个类是所有窗口类的父类,可以作为独立窗口使用,也可以内嵌到其它窗口中使用. Qt 中的所有控件 ...

最新文章

  1. lvs+keepalived实现双实例【双主模型】
  2. 【视频】vue指令之v-if、v-bind
  3. Moss/Sharepoint 备份或还原时出错的处理(持续更新)
  4. 算法 --- 二叉树查找树的先序(中序、后序)遍历的js实现
  5. 浙大计算机专硕培养方案,浙江大学硕士研究生培养方案
  6. templates(0.1)
  7. python mvc_python mvc设计模式(一)
  8. oracle的表连接-内外连接
  9. 非常好的截图软件:FSCapture,非常非常非常推荐(百度云链接)
  10. PX4从放弃到精通(十八):参数
  11. 学习Python的pyecharts的过程中踩到的一些坑
  12. C#用NPOI控件把MySQL数据库中查询符合条件的数据导出到EXCEL
  13. 一个IT公司技术总监的职责
  14. 海康监控如何设置STMP邮箱报警
  15. win12 修改dns脚本
  16. pcode.linq
  17. 固定翼飞机姿态角Backstepping反步法控制
  18. php访问opc ua,什么是OPC网关?OPC UA有什么特点
  19. DHCP snooping详解
  20. 微信公众号html标签,微信公众号用户标签管理

热门文章

  1. HA03-fence设置
  2. Python基础01-Python环境搭建与HelloWorld
  3. vs2017 open从v_宣布#Open2017,这是面向开发人员的除夕直播流
  4. linux生日_代码简介:让我们用25个Linux事实来庆祝Linux的25岁生日。
  5. linux6直连存储挂载磁盘,CentOS7mount网络磁盘的详细步骤
  6. java泛型的实现和原理_java 泛型实现原理
  7. PyTorch基础与简单应用:构建卷积神经网络实现MNIST手写数字分类
  8. leetcode--下一个更大元素II--python
  9. 发微信模版消息换行用\n
  10. 《中国人工智能学会通讯》——1.42 理解情感