Css 与所有其他QWidget相比,QWebView中的DPI[字体大小]不同?
我有一个QWebView,它显示一些HTML内容,我使用CSS设置文本样式:Css 与所有其他QWidget相比,QWebView中的DPI[字体大小]不同?,css,fonts,qt4,dpi,qwebview,Css,Fonts,Qt4,Dpi,Qwebview,我有一个QWebView,它显示一些HTML内容,我使用CSS设置文本样式: body { font-size: 10pt; } 带有QWebView的窗口也有一个QTextEdit字段,我为其设置了如下字体: QFont newFont; newfont.setPointSize(10); myEditField->setFont(newFont); 不幸的是,QWebView中显示的文本略大于qtexedit中显示的文本。我觉得这与QWebView中的DPI设置不同有关 有没有办
body { font-size: 10pt; }
带有QWebView的窗口也有一个QTextEdit
字段,我为其设置了如下字体:
QFont newFont;
newfont.setPointSize(10);
myEditField->setFont(newFont);
不幸的是,QWebView
中显示的文本略大于qtexedit
中显示的文本。我觉得这与QWebView
中的DPI设置不同有关
有没有办法让QWebView
和qtexedit
显示相同的字体大小
谢谢 这有点棘手。我发现从QApplication获得准确DPI测量的一个好方法,例如:
QWidget* window = QApplication::desktop()->screen();
int horizontalDpi = window->logicalDpiX();
就字体而言,您可以使用QWidget::fontMetrics()
获得良好的字体度量信息
我认为两者的结合将使您的web视图和文本编辑之间具有一定的一致性
祝你好运。有关此行为的解释已在以下网站上给出: WebKit假设96 dpi为固定分辨率,这似乎是事实。如果这就是web内容的设计方式,那么我们在改变这一点时会遇到问题,因为还有其他人希望WebKit像在web浏览器中一样呈现web内容。 另见 他们提出了两种解决办法: QWebView提供了我认为可以用来获得所需行为(与QWidget匹配)的功能 可以使用当前DPI计算缩放因子和文本倍增:
QWidget* window = QApplication::desktop()->screen();
const int horizontalDpi = window->logicalDpiX();
m_view->setZoomFactor(horizontalDpi / 96.0);
使用QWebSettings::zoomtextly
可以仅对文本应用缩放