可以顯示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()
{
}
本文地址:http://blog.csdn.net/u011417605/article/details/53489736