小编ElC*_*neo的帖子

在Qt中切换开关

我试图使用一个相当于Qt中的Android开关的元素.我在QML中找到了一个ToggleSwitch,但在实际的C++ Qt库中却没有.我只是遗漏了一些东西,还是我必须自己重新实现这个小部件?

c++ user-interface qt

23
推荐指数
4
解决办法
2万
查看次数

QLabel在调整大小时切断文本

我有一个自定义小部件,其总体布局为QVBoxLayout.它包含几个标签,一个QFormLayout,一个按钮,以及一个吃掉所有多余空间的伸展.其中一个标签可能非常大,所以我试图确保没有文本不可读的奇怪情况.小部件包含在QScrollArea中,以确保如果用户缩小整个窗口,仍然可以看到小部件的所有方面.

QLabel似乎调整得很好,但是一旦达到某个狭窄点,它就会切断标签底部的几行,并将空间分配给小部件底部的拉伸.

我在没有Designer的代码中完成所有操作,所以我完全有可能错过了一些东西.子组件按以下顺序添加到整个QVBoxLayout:

OverallLayout = new QVBoxLayout(this);
Title         = new QLabel();
Description   = new QLabel();
SubRegion     = new QFormLayout();
Button        = new QButton();
...
// set text values, wordWrap(true), and Font for labels
OverallLayout->addWidget(Title);
OverallLayout->addWidget(Description);
OverallLayout->addLayout(SubRegion);
OverallLayout->addStrut(MIN_DIST);
OverallLayout->addWidget(Button);
OverallLayout->addStretch(STRETCH_FACTOR);
Run Code Online (Sandbox Code Playgroud)

测试结果:检查从QLabel的sizeHint()函数返回的结果,返回的值似乎不会随着窗口小部件水平收缩而更改.然而,QLabel确实扩展到占据更多的垂直空间(153与103的暗示),仅仅不足以适应所有文本.首次显示QLabel时,它的像素数小于sizeHint,但仍足以支持其heightForWidth数量.调整大小时,它的heightForWidth数量小于30,但大于它的sizeHint.

我检查过,大型QLabel的hasHeightForWidth()和wordWrap()值设置为true.我究竟做错了什么?

c++ layout qt qlayout

6
推荐指数
1
解决办法
4598
查看次数

标签 统计

c++ ×2

qt ×2

layout ×1

qlayout ×1

user-interface ×1