我希望在我的Qt应用程序中使用fontawesome(http://fontawesome.io/icons)中的一些图标,我已经将fontawesome-webfont.ttf文件解压缩到usr / share / fonts中。是我编写的示例代码,用于从资源中提取图像(不是必需的),并访问Qfont库本身中已有的一些Qfonts(例如,在下面的示例中,courier new)。

#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QPixmap>
#include <QLabel>
#include <QHBoxLayout>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    centralWidget = new QWidget(this);
    gridLayout = new QGridLayout( centralWidget );
    mylabel = new QLabel();
    mylabel2= new QLabel();

    font = new QFont("courier");
    addresspic = new QPixmap(":/new/prefix1/address.png");
    *addresspic=addresspic->scaled(50,50,Qt::KeepAspectRatio, Qt::FastTransformation);
    mylabel->setPixmap(*addresspic);

    mylabel2->setTextFormat(Qt::RichText);
    mylabel2->setGeometry(QRect(QPoint(100,100),QSize(150, 150)));
    mylabel2->setText("  ADDRESS ICON ");
    gridLayout->addWidget(mylabel2);
    gridLayout->addWidget(mylabel);
    font->setItalic(true);
    font->setPixelSize(20);
    mylabel2->setFont(*font);


//   gridLayout->setVerticalSpacing(1);
//   gridLayout->setHorizontalSpacing(1);

    this->setCentralWidget(centralWidget);


}

MainWindow::~MainWindow()
{
    delete ui;
}

再次感谢

编辑:错误c&#43;&#43; - 如何在OpenSuse的Qt中访问Awesomefonts-LMLPHP的屏幕截图

编辑2:尝试G.M.的方法导致以下错误:知道为什么吗?
c&#43;&#43; - 如何在OpenSuse的Qt中访问Awesomefonts-LMLPHP

最佳答案

https://github.com/dridk/QFontIcon下载并将qfonticon.hqfonticon.cpp文件添加到您的项目中,然后使用以下代码创建图标:

QFontIcon::addFont("/path/your/fonts/{your font}.ttf");
QIcon icon = QFontIcon::icon(0xf2b9);

{your widget}->setIcon(icon);

例:
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QPushButton>
#include "qfonticon.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QWidget *centralWidget;
    QGridLayout *gridLayout;

    centralWidget = new QWidget(this);
    gridLayout = new QGridLayout( centralWidget );

    QFontIcon::addFont("/usr/share/fonts/fontawesome-webfont.ttf");


    for(int i = 0; i < 15; i++){
        QIcon icon = QFontIcon::icon(0xf2b9+i);
        QPushButton *b = new QPushButton();
        b->setIcon(icon);
        gridLayout->addWidget(b);
    }
    this->setCentralWidget(centralWidget);
}

MainWindow::~MainWindow()
{
    delete ui;
}

c&#43;&#43; - 如何在OpenSuse的Qt中访问Awesomefonts-LMLPHP

更多信息:https://github.com/dridk/QFontIcon

我用Qt 5.7和Qtcreator 4.2进行了测试

10-08 19:55