gpt4 book ai didi

c++ - 如何在 OpenSuse 上的 Qt 中访问 Awesomefonts

转载 作者:搜寻专家 更新时间:2023-10-31 01:33:24 25 4
gpt4 key购买 nike

我想在我的 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;
}

再次感谢

编辑:错误截图enter image description here

编辑 2:尝试 G.M. 的方法导致以下错误:知道为什么吗? enter image description here

最佳答案

来自 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;
}

enter image description here

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

我用 Qt 5.7 和 Qtcreator 4.2 测试过

关于c++ - 如何在 OpenSuse 上的 Qt 中访问 Awesomefonts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41480985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com