本文主要是介绍QComboBox设置字体样式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、我们希望将系统的字体添加到下拉列表中,并且在工具栏中显示,效果如下图所示:
二、单纯的用QComboBox是不能获取字体样式的,QComboBox仅仅是一个下拉列表,并不能获取系统字体,Qt专门提供了一个类QFontComboBox来获取下拉式的系统字体;
参考Qt助手查看QFontComboBox类的第一句是The QFontComboBox widget is a combobox that lets the user select a font family.另外需要配合使用的就是QTextCharFormat类,因为它提供了setFontFamily()函数来设置系统字体;
三、将下拉列表添加到工具栏中必须用代码,不能在ui界面拖动添加。类似的还有QSpinBox、QLabel
四、添加头文件
#include <QSpinBox>
#include <QFontComboBox>
#include <QLabel>
#include <QTextCharFormat>
五、定义两个指针,添加槽函数
private:Ui::MainWindow *ui;QSpinBox *spinBox;QFontComboBox *comboBox;private slots:void spinBoxSlot(int FontSize);void comboBoxSlot(const QString &arg1);
六、cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);ui->mainToolBar->addWidget(new QLabel("字体大小"));spinBox = new QSpinBox;spinBox->setValue(ui->textEdit->font().pointSize());ui->mainToolBar->addWidget(spinBox);ui->mainToolBar->addWidget(new QLabel("字体"));comboBox = new QFontComboBox;comboBox->setMinimumWidth(150);ui->mainToolBar->addWidget(comboBox);connect(spinBox,SIGNAL(valueChanged(int)),this,SLOT(spinBoxSlot(int)));connect(comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(comboBoxSlot(const QString &)));}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::spinBoxSlot(int FontSize)
{QTextCharFormat fmt;fmt.setFontPointSize(FontSize);ui->textEdit->mergeCurrentCharFormat(fmt);
}void MainWindow::comboBoxSlot(const QString &arg1)
{QTextCharFormat fmt;fmt.setFontFamily(arg1);ui->textEdit->mergeCurrentCharFormat(fmt);
}
这篇关于QComboBox设置字体样式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!