我正在使用Qt框架构建一个支持多种语言的应用程序。默认字体是从StyleSheet加载的。
我重写了paintEvent()方法,除了QLabel和QComboBox之外,setFont()方法对所有小部件都正常工作。
对于QComboBox,所选项具有正确的字体,但下拉列表项使用默认字体。Qt手册说setFont将comboBox按钮和comboBox弹出列表的字体都设置为字体。
有谁碰巧看到这个问题,想办法解决这个问题吗?谢谢。
发布于 2014-09-25 04:38:49
答案太长了,因为我写了不同的方法,选择最好的给你。
试着做下一个:
创建QListView,自定义它(例如用样式表)
使用数据设置模型,并使用特殊方法将视图设置为QComboBox:
setModel()和setView()
http://qt-project.org/doc/qt-4.8/qcombobox.html#setView
setStyleSheet("font-family: Arial;font-style: normal;font-size: 12pt");对于标签,您也可以使用样式表、setFont或设置具有适当字体的HTML代码:
QFont f( "Arial", 14, QFont::Bold);
label->setFont(f);使用ComboBox,您可以使用以下示例:
QStringList stringList;
stringList << "#hello" << "#quit" << "#bye";
QStringListModel *mdl = new QStringListModel(stringList);
QFont comboFont("Arial",16,-1,true);
QListView *vw = new QListView;
vw->setFont(comboFont);
ui->comboBox->setModel(mdl);
ui->comboBox->setView(vw);但是它将在弹出菜单中,而不是在标题中将字体安装到您的数据中,因此您也可以使用下面的命令:
QFont comboFont("Arial",16,-1,true);
for(int i = 0; i< ui->comboBox->count(); i++)
{
ui->comboBox->setItemData(i,QVariant(comboFont),Qt::FontRole);
}
ui->comboBox->setFont(comboFont);使用此代码片段,您将得到弹出菜单和标题与此字体,您不需要创建模型和视图。
发布于 2017-05-14 08:57:09
亲爱的,这已经足够在下面这样做了:
ui->CboxOpisBaza->lineEdit()->setFont(QFont("MS Shell Dlg 2", 12));https://stackoverflow.com/questions/26030470
复制相似问题