qPushButton C++ 根据文字长度自动调整大小
时间: 2024-05-16 12:18:19 浏览: 6
可以通过设置 QPushButton 的大小策略(size policy)来实现根据文字长度自动调整大小。具体步骤如下:
1. 设置 QPushButton 的文本:`button->setText("Button Text");`
2. 获取文本的宽度:`int textWidth = button->fontMetrics().width(button->text());`
3. 设置 QPushButton 的大小策略为 Preferred(首选):`button->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);`
4. 设置 QPushButton 的宽度为文本宽度加上一定的边距,高度为一定值(例如30):`button->setFixedWidth(textWidth + 20); button->setFixedHeight(30);`
完整示例代码如下:
```cpp
QPushButton* button = new QPushButton(this);
button->setText("Button Text");
int textWidth = button->fontMetrics().width(button->text());
button->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
button->setFixedWidth(textWidth + 20);
button->setFixedHeight(30);
```
这样设置后,QPushButton 的宽度就会根据文本长度自动调整。如果要根据高度自动调整,可以将 `QSizePolicy::Fixed` 改为 `QSizePolicy::Preferred` 并设置高度为 0。