Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何将QPushButton设置为垂直增长?_Qt_User Interface - Fatal编程技术网

Qt 如何将QPushButton设置为垂直增长?

Qt 如何将QPushButton设置为垂直增长?,qt,user-interface,Qt,User Interface,背景:我需要类控件。通常,我会使用Qt,但在这种情况下,我还需要支持从右到左的布局。遗憾的是,当通过setLayoutDirection显式设置时,QCommandLinkButton似乎不尊重Qt::RightToLeft。似乎也没有办法通过样式表覆盖布局方向 我试图通过使用QPushButton来解决这个问题:我实例化了QPushButton,并将其内容替换为包含两个垂直堆叠标签的自定义布局。这不起作用,因为QPushButton拒绝水平展开 未能使QPushButton实例工作,我决定尝试

背景:我需要类控件。通常,我会使用Qt,但在这种情况下,我还需要支持从右到左的布局。遗憾的是,当通过
setLayoutDirection
显式设置时,
QCommandLinkButton
似乎不尊重
Qt::RightToLeft
。似乎也没有办法通过样式表覆盖布局方向

我试图通过使用
QPushButton
来解决这个问题:我实例化了
QPushButton
,并将其内容替换为包含两个垂直堆叠标签的自定义布局。这不起作用,因为
QPushButton
拒绝水平展开

未能使
QPushButton
实例工作,我决定尝试对其进行子分类。无论我尝试了什么(覆盖
sizeHint
,将垂直
sizePolicy
设置为展开,
resize
ing显式等),按钮都拒绝增长超过30像素高

如果我将
QPushButton
更改为
QWidget
,新的小部件将正常增长


问题:我如何强制一个
QPushButton
垂直增长并适应其内部小部件?如果这是不可能的,对于一个在视觉和行为上都与
QPushButton
和其他“本机”控件一致的按钮状小部件,我的选项是什么?

将按钮放置在布局中,并将其
垂直大小策略设置为
最大值


通过将最大高度设置为16777214(而不是默认的16777215),然后将按钮的内容边距设置为10,我成功地使按钮正常增长


令人困惑的是,
QPushButton
的默认最大高度应该足够大,但出于某种原因,它拒绝超过30像素,除非最大高度明确设置为其他值。

我正在使用Qt小部件在运行时动态生成我的用户界面。我发现的最接近的设置是我怀疑不相关的设置。我试过将限制设置为最大值,将无限制设置为不成功。这对您有帮助吗?