QWebEngineView:Mac OSX上的异常行为

时间:2016-11-23 13:27:56

标签: macos python-3.x fonts pyqt pyqt5

我是QWebEngineView类的子类:

class WebViewPerso(QtWebEngineWidgets.QWebEngineView):


    def __init__(self, parent=None):

        super(WebViewPerso, self).__init__(parent)
        print(self.settings().fontFamily(QtWebEngineWidgets.QWebEngineSettings.StandardFont))

        # Get the default font and use it in the view
        self.settings().setFontFamily(
            QtWebEngineWidgets.QWebEngineSettings.StandardFont,
            self.font().family())
        print(self.settings().fontFamily(QtWebEngineWidgets.QWebEngineSettings.StandardFont))

在linux上,两个print语句返回:

DejaVu Serif
Sans Serif

它清楚地表明我更改了视图的字体,现在视图使用了正确的字体。

在OSX上使用完全相同的行,我得到:

Times
.SF NS Text

这也表明字体已更改。但是,视图仍使用Times字体

我也尝试了设置线:

FixedFont
SerifFont
SansSerifFont
CursiveFont
FantasyFont
PictographFont

但是我的WebEngineView仍然使用Times字体。

您是否了解我为何会观察此行为?

1 个答案:

答案 0 :(得分:0)

尝试一些由它继承的方法,而不仅仅是QWebEngineView。

  1. 来自here的东西。例如,setFont传递QFont
  2. 还尝试通过其styleSheet
  3. 中的字体系列进行更改

    例如,在我的代码中,我刚刚做了这个:

    $timeout(function() {
        angular.element("#" + input.property).attr('required', 'required');
    });
    

    它在Linux,Windows,OSX甚至Raspberry中运行良好。