【问题标题】:Resize QToolButton with text使用文本调整 QToolButton 的大小
【发布时间】:2013-04-07 20:11:40
【问题描述】:

我有一个QToolButton,其文本使用toolButton->setText(....)。但是,在呈现按钮时,文本会被截断。我尝试使用resize()setFixedSize 增加按钮的宽度,但文本居中且仍被截断。任何想法如何使按钮跟随文本的宽度?

【问题讨论】:

  • 您能否提供一些示例代码来重现您的问题?它适用于我尝试过的简单案例。
  • 你能贴出你的例子的代码吗?

标签: c++ qt button user-interface interface


【解决方案1】:

您可以使用QFontMetrics 计算显示整个文本所需的最小大小。 boundingRect 方法返回与文本大小相对应的 QRect。您可以指定 Qt::AlignHCenter 之类的标志。

http://qt-project.org/doc/qt-5.0/qtgui/qfontmetrics.html#boundingRect-4

您可以继承QToolButton 并重新实现setText() 方法以包含对resize() 的调用或在调用setText() 时管理大小。

【讨论】:

  • 听起来是一个合理的解决方案,但我很难连接点当我拥有具有适当宽度和高度的矩形时会发生什么我如何使用它来设置工具按钮?
  • 调用 QtoolButton::setMinimumSize() 方法使用 boundingRect.size() 调整工具按钮的大小。但是,您只能管理宽度。计算文本宽度: QFontMetrics::width( toolButton->text() ).
  • 我正在尝试这个没有运气:QFont 字体; QFontMetrics fm(字体); int pixelWide = fm.width(name); toolButton_userName->setMaximumWidth(pixelsWide); toolButton_userName->setText(name);
  • 以下也失败:QFont字体; QFontMetrics fm(字体); QRect rect = fm.boundingRect(name); toolButton_userName->setMaximumSize(rect.width(),rect.height()); toolButton_userName->setText(name);
  • 为 QFontMetrics 使用 QToolButton 的字体:QFontMetrics 指标( toolButton->font() )。此外,它不是 setMaximumWidth() 而是 setMinimumWidth()。
【解决方案2】:

尝试使用正确的值设置相同的minimumSize(w,h)maximumSize(w,h),例如: 在 Design 中,在按钮的属性窗口中:

几何中的宽度和高度 - 80x88,最小值和最大值必须 一样。

在我的情况下它适用于我。如果是,请注意按钮的图标大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2022-11-04
    • 2016-04-20
    相关资源
    最近更新 更多