Qt QLabel setPixmap 不需要的填充
Qt QLabel setPixmap unwanted padding
我有一个QLabel,在两个维度上的大小策略都是QSizePolicy::Expanding
,我想在其中显示带有QLabel::setPixmap
的图像。主窗口不应该调整大小,这就是为什么我在设置为 QLabel 的大小之前缩放像素图的原因。
图像设置正确,但是在顶部和底部有一个我不想要的填充,顶部 12px,底部 13px。setPixmap
命令调整 QLabel 和主窗口的大小。我不知道为什么。QLabel 的样式表是空的。我可以为 QLabel 背景着色,以查看额外的空间是 QLabel 的填充(或像素图的边距)。当我尝试调整主窗口的大小时,我不能让它太小以至于这个额外的边框消失,我可以放大它并且填充在所有边上增加(如预期的那样),但我无法让它变小以摆脱这个额外的边距。
有谁知道是什么原因造成的?
编辑:
添加了一些代码。 在这些行之前ui->label_title
是空的,label_title
位于label_main
顶部的相同垂直布局中。我只是想,当某些文本设置为 label_title 时,布局尚未更新,因此下一行返回旧大小,然后图像太大,因为标题占用了一些空间并且必须调整主窗口的大小。是否有更新布局的命令,以便其中的所有小部件都获得新大小?layout->update();
没有工作。
ui->label_title->setText(imgNames.at(crntItemNr));
QSize size = ui->label_main->size();
ui->label_main->setPixmap(images.at(crntItemNr).scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation));
问题是文档中解释的label_titlewordwrap
。label_main的行为很奇怪,很难在label_title中找到原因。
这可能是因为您对窗口大小使用了错误的测量值。 您正在考虑盒子模型,并访问几何图形,并且它的测量方式不同:
http://qt-project.org/doc/qt-5.0/stylesheet-customizing.html
http://qt-project.org/doc/qt-4.8/application-windows.html#window-geometry
如果没有代码示例,很难确切地看出出了什么问题。
我希望这有所帮助。
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 为什么output_editor Concept不需要output_e迭代器标记
- 在除法中不需要四舍五入
- 与C代码相比,为什么C++代码不需要"#define _POSIX_C_SOURCE 200809L"?
- 将值从另一个数组写入数组,不包括不需要的值 C++
- C++ 写入路径名中包含不需要的空字符的文件
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 使用 assimp 加载模型 - 不需要提升?
- 为什么转换函数声明不需要至少一个定义类型说明符
- 返回不需要的值的二叉搜索程序
- 当我不需要数据库中的所有值时,如何部分初始化 c++ 对象?
- C++:用户输入会产生不需要的行为
- 如何在不需要LIBCD.lib的情况下在Visual Studio 6中编译C项目
- 为什么python需要全局关键字而C/C++不需要?
- 将一个宏传递到另一个宏而不是直接传递内容时会出现不需要的额外"空"参数
- 缓冲区用不需要的数据填充 char 数组中的最后一个空格
- 一种方式链接列表和不需要的第一个元素AFRTER填充
- Qt QLabel setPixmap 不需要的填充
- 填充矩形中略微不需要的透明度