【问题标题】:arange horizontal line of buttons in Pyside/PyQT/Qt在 Pyside/PyQT/Qt 中排列水平的按钮线
【发布时间】:2015-08-21 15:27:21
【问题描述】:

我想用 PySide/PyQt 创建一个简单的 GUI。 在这个 GUI 中,我希望有一个带有严格按钮的原始按钮,并且我希望按钮的长度与其文本标签成正比。 查看 QPushButton 和 QHBoxLayout 我看不出这可以轻松完成。

在这方面有什么建议吗? 谢谢 迪米塔

【问题讨论】:

    标签: qt button layout pyqt pyside


    【解决方案1】:

    使用工具按钮很容易做到这一点。在 Qt 设计器中:

    • 创建工具按钮并设置文本
    • 将它们放在水平布局中
    • 在布局的开头和/或结尾添加水平分隔符

    或者,您还可以:

    • 设置最小宽度/高度
    • 将按钮的大小策略更改为最小/最小

    【讨论】:

    • QSizePolicy.Minimum sizeHint() 最小且足够。小部件可以扩展,但它没有任何优势。它不能小于 sizeHint() 提供的大小。在您的第一步中,您的意思是将按钮 sizeHint 设置为文本标签可以容纳的大小吗?你的意思是我必须在这里使用像 QFontMetrics 这样的东西吗?对于第二步。我不明白你为什么说最少两次?如果对于当前按钮字体,标签文本的总数量大于存储我的原始按钮的窗口会发生什么?它会按比例缩放按钮?
    • @DimitarPenev。我可以从您的问题中看出您没有使用 Qt Designer,这使得尝试此类事情变得如此容易。如果您使用工具按钮而不是按钮,则无需担心尺寸提示或计算宽度。工具按钮会自动调整大小以适应文本。试试吧!我提到的其他内容只是微调的建议,完全是可选的(minimum/minimum 指的是水平和垂直尺寸策略)。使用 Qt 设计器!
    • 我已经在 Qt Designer 中测试了按钮和工具按钮,它们具有相似的行为。幸运的是,它们都反映了它们显示的测试标签的大小。 Qt Designer 确实看起来非常有用。谢谢 ekhumoro
    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 2015-06-28
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多