字体大小QComboBox中的项目?

3

假设我用每行一个数字来填充QComboBox。并且这些行在垂直方向上非常接近。我如何控制它们之间的垂直距离?


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

6

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

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继承才能执行这个简单的操作吗? - Narek
嗯,这并不是太难。我的答案包含了您需要的所有代码,所以基本上只需要两个复制/粘贴操作 :) 更简单的方法是更改组合框的字体大小。这不需要编写新代码,您可以使用Qt Designer或Qt Creator来完成。 - user362638

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接