【问题标题】:Font size QComboBox items?字体大小 QComboBox 项目?
【发布时间】:2010-09-05 11:02:07
【问题描述】:

假设我在 QComboBox 的每一行都填充了一个数字。线条在垂直方向上非常接近。如何控制垂直距离?

【问题讨论】:

  • 也许你应该创建一个关于输入验证的新问题。
  • 好的,我已经完成了输入验证。

标签: c++ qt vertical-alignment qcombobox


【解决方案1】:

如果您只想更改行高(而不是更改字体大小),请创建一个新的委托类:

class RowHeightDelegate : public QItemDelegate
{
    Q_OBJECT
public:
    QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
    {
        return QSize(1, 40); // the row height is now 40
    }
};

并将其设置到您的组合框:

ui->comboBox->setItemDelegate(new RowHeightDelegate());

编辑:

上面的例子展示了如何改变下拉列表的行高。字体大小没有改变。如果要更改整个组合框的字体大小(包括下拉列表),请创建具有所需大小的新字体并将其设置为组合框:

QFont font;
font.setPointSize(font.pointSize() + 10);
ui->comboBox->setFont(font);

或者使用 Qt Designer 或 Qt Creator 来改变字体大小。

【讨论】:

  • 是否必须继承自 QItemDelegate 才能完成这个简单的操作?
  • 嗯,这并不难。我的答案包含您需要的所有代码,因此基本上是两个复制/粘贴操作:) 更简单的方法是更改​​组合框的字体大小。这不需要编写新代码,您可以使用 Qt Designer 或 Qt Creator 来完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
相关资源
最近更新 更多