qt - 如何将 QPushButton 设置为垂直增长?
问题描述
背景:我需要类似Command Link的控件。通常,我会使用 Qt 的builtinQCommandLinkButton
,但在这种情况下,我还需要支持 Right-to-Left 布局。遗憾的是QCommandLinkButton
,Qt::RightToLeft
通过setLayoutDirection
. 似乎也没有办法通过样式表覆盖布局方向。
我尝试使用以下方法解决这个问题QPushButton
:我用包含两个垂直堆叠的标签的自定义布局实例化QPushButton
并替换了它的内容。这不起作用,因为QPushButton
拒绝水平扩展。
未能使QPushButton
实例工作,我决定尝试对它进行子类化。无论我尝试什么(覆盖sizeHint
、设置垂直sizePolicy
扩展、resize
显式等),按钮都拒绝增长超过 30 像素高。
如果我更改QPushButton
为QWidget
,新的小部件会正常增长。
问题:如何强制 aQPushButton
垂直增长并适合其内部小部件?如果这是不可能的,对于在视觉和行为上都QPushButton
与其他“本机”控件一致的按钮式小部件,我有哪些选择?
解决方案
通过将最大高度设置为 16777214(而不是默认的 16777215),然后将按钮的内容边距设置为 10,我设法使按钮正常增长。
令人困惑的是,a 的默认最大高度QPushButton
应该足够了,但由于某种原因,它拒绝增长超过 30 像素,除非最大高度明确设置为其他值。
推荐阅读
- php - .htaccess 重写相互抵消......有什么想法吗?
- javafx - 如何在 SplitPane 中对齐 VBox
- javascript - 单击链接时禁用默认锚点跳转
- python - sqlite3.OperationalError)没有这样的表 - 带有 Huey 任务队列的烧瓶
- bash - 在解析操作系统路径的 bash 脚本中动态分配变量
- sql - 将查询结果导出到 Json
- sql - 如何根据特殊字符从行中提取值
- java - 如何在spring boot中反序列化数组对象
- javascript - 创建依赖的 extjs 网格
- python - 将 json 写入 MYSQL 数据库时 SQL 语法中的 PYTHON 错误