• 4394阅读
  • 2回复

新手求教:如何让WebView默认绘制INPUT的边框? [复制链接]

上一主题 下一主题
离线yunhaiyudao
 
只看楼主 正序阅读 楼主  发表于: 2010-03-06
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
我现在正在用Qt4.6做一个基于WebKit浏览器引擎的应用,可发现WebKit默认是不绘制INPUT的边框的,这种风格似乎在网上比较流行,但对于用户来说,没有边框提示在什么位置输入,岂不是很不人性化?

我试图通过QWebView的settings()->setUserStyleSheetUrl来设置默认样式,发现不起作用。
又用QWebView的setRenderHint(QPainter::NonCosmeticDefaultPen,false);还是不行(改成true也不行)。

我用demo中的browser来打开网页,INPUT默认也是没有边框的,必须在网页的CSS中手工指定border:solid 1px silver之类的才行。

请问我该怎么做才能让WebKit默认显示INPUT的边框?要求每个网页都在CSS中指定border不现实。

另外,WebKit对SVG的边框支持也有些问题:单独打开有边框,放到iframe或img中就没有边框了,这是为什么呢?


离线yunhaiyudao
只看该作者 2楼 发表于: 2010-03-12
算了,还是自己解决了。

查询webkit.org后得知这是一个BUG。在我的程序里设置了UI的样式,如果为QWidget指定任何样式,INPUT元素就没有边框,将UI样式表改成QWidget{}或者不设置任何样式,INPUT的边框就有了。
离线yunhaiyudao
只看该作者 1楼 发表于: 2010-03-09
不是吧?我这个问题真的很难?
快速回复
限100 字节
 
上一个 下一个