我正在尝试制作一个Qt小部件,显示一个QLable表格,其中显示十六进制数字。
我将数字作为QString传递给标签,准备打印,标签正常工作,但字体类型是系统默认字体(无衬线字体),具有不同的字母大小,因此包含“A-F”数字的数字不再与其他数字对齐...
我最初使用以下函数创建字体:
但它没有起作用,所以我添加到主要文件中。
我将数字作为QString传递给标签,准备打印,标签正常工作,但字体类型是系统默认字体(无衬线字体),具有不同的字母大小,因此包含“A-F”数字的数字不再与其他数字对齐...
我最初使用以下函数创建字体:
static const QFont getMonospaceFont(){
QFont monospaceFont("monospace"); // tried both with and without capitalized initial M
monospaceFont.setStyleHint(QFont::TypeWriter);
return monospaceFont;
}
创建一个自定义的 QLabel
类,该类具有以下构造函数:
monoLabel(QWidget *parent = 0, Qt::WindowFlags f = 0) : QLabel(parent, f) {
setTextFormat(Qt::RichText);
setFont(getMonospaceFont());
}
但它没有起作用,所以我添加到主要文件中。
QApplication app(argn, argv);
app.setFont(monoLabel::getMonospaceFont(), "monoLabel");
字体仍然没有改变...
我在网上搜索了与 QLabel
字体设置问题相关的内容,但似乎只有我无法正确地使它们工作。
我做错了什么?
"DejaVu Sans Mono" true
),并且以伪随机方式在我的项目中移动东西使更改发生...似乎在创建QApplication之后添加app.setFont(monoLabel::getMonospaceFont(), "parentWidget");
,其中parentWidget
是包含标签的类,是唯一实现标签中等宽字体的方法...它可以工作,我很满意,但我不明白为什么... - mellotanica