C++ 检查QFont是否为衬线或无衬线
我有一个由用户选择的QFont:C++ 检查QFont是否为衬线或无衬线,c++,qt,fonts,C++,Qt,Fonts,我有一个由用户选择的QFont: QFont font = QFontDialog::getFont(&ok, prevFont, this); 我如何知道它是否是衬线字体 这有用吗 bool isSansSerrif = (font.styleHint() & QFont::SansSerif); bool isSerrif = (font.styleHint() & QFont::Serif); 你检查QFont属性了吗?我用哪个函数来检查?Sans Serif仅
QFont font = QFontDialog::getFont(&ok, prevFont, this);
我如何知道它是否是衬线字体 这有用吗
bool isSansSerrif = (font.styleHint() & QFont::SansSerif);
bool isSerrif = (font.styleHint() & QFont::Serif);
你检查QFont属性了吗?我用哪个函数来检查?Sans Serif仅与
styleHint
属性结合使用,但这里有一个关于字体匹配算法的提示。但是,我的字体已经被选中。您是否需要它在所有平台上工作,或者特别是在一个平台(Windows、Mac、Linux)上工作?我不认为你可以直接从Qt获取这些信息,但可能有一种不可移植的方式,比如从Windows上的HFONT
句柄获取LOGFONT
结构。我只需要在Windows上工作。测试表明,通过QFont
本身或通过qfontino
查询styleHint
都不起作用。样式提示仅用于输出字体匹配,不会反映加载的实际系统字体的属性。Qt将它们用作识别最佳候选字体的指南。我可能错了,但我怀疑字体文件中除了字体名称中出现的文本之外,是否存在任何固有的衬线指示器。