Pango+Qt 列举windows系统字体

欢迎关注公众号可以查看更多完整文章

可以显示Windows上所安装的所有字体的名称。

使用Qt显示数量和名称。

需要依赖Pango、Cairo、glib三个库,获取三个库,获取可以参见我的其他博客。

需要注意的是,编译Pango时,需要设置环境变量:

并且需要在cairo.h中添加

#define HAVE_CAIRO_WIN32

才可以正常使用。

显示效果:

测试源码:

#ifndef QTPANGO_H
#define QTPANGO_H

#include <QtWidgets/QWidget>

class QtPango : public QWidget
{
	Q_OBJECT

public:
	QtPango(QWidget *parent = 0);
	~QtPango();

private:
};

#endif // QTPANGO_H
#include "qtpango.h"
#include <QComboBox>
#include <QLabel>
#include "pango/pangocairo.h"
#include "pango/pango-font.h"
#include "pango/pango-types.h"
#include "pango/pango-fontmap.h"

QtPango::QtPango(QWidget *parent)
	: QWidget(parent)
{
	PangoFontFamily ** families;

	int nfamilies = 0;
	PangoFontMap *fontmap = pango_cairo_font_map_get_default();
	pango_font_map_list_families(fontmap, &families, &nfamilies);
	
	QLabel *pLabel = new QLabel(this);
	pLabel->setText(QString::number(nfamilies));
	pLabel->setGeometry(0, 0, 50, 20);

	QComboBox *pCombo = new QComboBox(this);
	pCombo->setGeometry(70, 0, 200, 20);

	for (int i = 0; i < nfamilies; i++) {
		PangoFontFamily * family = families[i];
		const char *family_name = pango_font_family_get_name(family);
		pCombo->addItem(QString(family_name));
	}
}

QtPango::~QtPango()
{

}


本文地址:Pango+Qt 列举windows系统字体_GreenArrowMan-CSDN博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreenArrowMan

请打钱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值