【发布时间】:2019-10-24 08:59:27
【问题描述】:
背景:我需要类似Command Link 的控件。通常,我会使用 Qt 的builtin QCommandLinkButton,但在这种情况下,我还需要支持从右到左的布局。遗憾的是,QCommandLinkButton 在通过setLayoutDirection 明确设置时似乎不尊重Qt::RightToLeft。似乎也没有办法通过样式表覆盖布局方向。
我试图通过使用QPushButton 来解决这个问题:我实例化了QPushButton,并用包含两个垂直堆叠的标签的自定义布局替换了它的内容。这不起作用,因为QPushButton 拒绝水平扩展。
未能使QPushButton 实例工作,我决定尝试对它进行子类化。无论我尝试什么(覆盖sizeHint,将垂直sizePolicy 设置为展开,resizeing 明确等),按钮都拒绝增长超过 30 像素高。
如果我将QPushButton 更改为QWidget,新的小部件会正常增长。
问题:如何强制QPushButton 垂直增长并适合其内部小部件?如果这是不可能的,我有什么选项可以选择在视觉和行为上都与QPushButton 和其他“本机”控件一致的按钮式小部件?
【问题讨论】:
标签: qt user-interface