在开发的过程中,有个需求,是添加一个字体选择框,这个简单,我可以直接用了QFontComboBox解决,但是我的需求是字体不用系统字体,而是用我们自定义添加的字体库,后来我尝试用QComboBox解决,但是,这个鬼东西却不能单独改变单独item的字体样式,算了,直接自己写吧,话不多说,上代码:
.h文件
class CFontComboBox : public QComboBox {
Q_OBJECT
private:
QListWidget * mFontList;
public:
CFontComboBox(QWidget * parent = nullptr);
void addFont(QString famil);
void addFonts(QStringList famils);
protected:
void wheelEvent(QWheelEvent *) override;
};
.cpp文件
CFontComboBox::CFontComboBox(QWidget*parent) :
QComboBox(parent)
{
mFontList = new QListWidget(this);
setModel(mFontList->model());
setView(mFontList);
mFontList->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setStyleSheet("QComboBox{combobox-popup:0;}");
setMaxVisibleItems(5);
}
void CFontComboBox::wheelEvent(QWheelEvent * event) {
}
void CFontComboBox::addFont(QString famil) {