html设置Qwebview滚动条的样式风格

今天有点空闲,想起来上次有个QWebview的滚动条的style,一直都没有实现,就用html5试了一下,
虽然不好看,也有好几个功能还没有实现,现在将自己写的分享出来,大神勿喷,还望不吝赐教。
先看看一些滚动条设置的属性:
1.overFlow: 
visible却省值,没有DIV滚动条,根据内容自动扩撑区域的大小,即定义的区域无效 
scroll总是显示滚动条 
hidden没有滚动条,超出区域的内容不可见 
auto根据内容自动判断是否添加滚动条 


2.
overflow-x:hidden;                /*隐藏底部的横向滚动条*/
scrollbar-arrow-color: #f4ae21;   /*三角箭头的颜色*/
scrollbar-face-color: #333;       /*立体滚动条的颜色*/
scrollbar-3dlight-color: #666;    /*立体滚动条亮边的颜色*/
scrollbar-highlight-color: #666;  /*滚动条空白部分的颜色*/
scrollbar-shadow-color: #999;     /*立体滚动条阴影的颜色*/
scrollbar-darkshadow-color: #666; /*滚动条强阴影颜色*/
scrollbar-track-color: #666;      /*立体滚动条背景颜色*/
scrollbar-base-color: #f8f8f8;    /*滚动条的基本颜色*/



3.overFlow-xoverFlow-y 
visible却省值,没有DIV滚动条,根据内容自动扩撑区域的大小,即定义的区域无效 
scroll总是显示滚动条 
hidden没有DIV滚动条,超出区域的内容不可见 
auto根据内容自动判断是否添加滚动条

再上实际效果图:
这里写图片描述
再来看看源代码:

::-webkit-scrollbar{
    color:white;
    background-color:white;
    width:10px;
    height:5px;
    min-height:20px;
    -webkit-box-shadow:2px 2px 6px rgba(0,0,0,0.2) inset;
}

::-webkit-scrollbar-track{
    background:transparent;
    //-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
    -webkit-border-radius: 10px;
    border-radius: 10px;    
}
//滚动条的Face style 和后面的槽
::-webkit-scrollbar-thumb{
    border-radius:8px;
    background:-webkit-linear-gradient(white, #efefef 80%, white);
    -webkit-box-shadow:2px 2px 6px rgba(0,0,0,0.5),inset -2px 2px 2px rgba(204,204,204,0.1),inset 2px -2px 2px rgba(0,0,0,0.2),inset 2px 2px -2px rgba(204,204,204,0.2);
}
//不知道为什么,这一行好像没有用
::-webkit-scrollbar-thumb:hover{
    background:-webkit-linear-gradient(read);
    min-height:20;
}
//鼠标按下去后滚动条style
::-webkit-scrollbar-thumb:active{
    background:-webkit-linear-gradient(#efefef, #efefef);
}

另外,附加一份QListWidget滚动条的style:
QListWidget的滚动条的style可以直接在样式表里面设置,setStyleSheet();函数设置他的样式表。

// 设置垂直滚动条基本样式
QScrollBar:vertical
{
    width:8px;
    background:rgba(0,0,0,0%);
    margin:0px,0px,0px,0px;
    padding-top:9px;   // 留出9px给上面和下面的箭头
    padding-bottom:9px;
}
QScrollBar::handle:vertical
{
    width:8px;
    background:rgba(0,0,0,25%);
    border-radius:4px;   // 滚动条两端变成椭圆
    min-height:20;
}
QScrollBar::handle:vertical:hover
{
    width:8px;
    background:rgba(0,0,0,50%);   // 鼠标放到滚动条上的时候,颜色变深
    border-radius:4px;
    min-height:20;
}
QScrollBar::add-line:vertical   // 这个应该是设置下箭头的,3.png就是箭头
{
    height:9px;width:8px;
    border-image:url(:/images/a/3.png);
    subcontrol-position:bottom;
}
QScrollBar::sub-line:vertical   // 设置上箭头
{
    height:9px;width:8px;
    border-image:url(:/images/a/1.png);
    subcontrol-position:top;
}
QScrollBar::add-line:vertical:hover   // 当鼠标放到下箭头上的时候
{
    height:9px;width:8px;
    border-image:url(:/images/a/4.png);
    subcontrol-position:bottom;
}
QScrollBar::sub-line:vertical:hover  // 当鼠标放到下箭头上的时候
{
    height:9px;width:8px;
    border-image:url(:/images/a/2.png);
    subcontrol-position:top;
}
QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical   // 当滚动条滚动的时候,上面的部分和下面的部分
{
    background:rgba(0,0,0,10%);
    border-radius:4px;
}

当然也可以用加载文件的方式来设置滚动条的style。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 重新设置QWebView设置的方法是通过用QWebSettings类的reset函数来实现的,该函数将所有设置恢复为默认值。以下是示例代码: ``` QWebSettings::globalSettings()->reset(); ``` 这将重置所有QWebView实例的设置。如果你只想重置单个QWebView实例的设置,请使用以下代码: ``` webView->settings()->reset(); ``` 这将重置特定的QWebView实例的设置。 ### 回答2: 重新设置 QWebView设置可以通过以下几个步骤完成: 1. 创建一个 QWebSettings 对象:首先,我们需要创建一个 QWebSettings 对象,以便可以访问和修改 QWebView设置。 2. 获取 QWebSettings 对象:通过QWebView 的 settings() 方法,我们可以获取到当前 QWebView 的 QWebSettings 对象。 3. 修改设置:使用 QWebSettings 对象提供的各种方法,可以修改 QWebView 的不同设置。例如,可以使用 setAttribute() 方法修改是否启用 JavaScript、Java、Plugins 等功能;使用 setFontSize() 方法修改字体大小;使用 setDefaultTextEncoding() 方法修改默认文本编码等。 4. 应用设置:在修改QWebView设置后,需要用 QApplication 的 setAttribute() 方法,并传入 QApplication::WebSettings ,以确保新的设置生效。 下面是一个示例代码,演示如何重新设置 QWebView 的一些常见设置: ```cpp // 创建 QWebSettings 对象 QWebSettings* webSettings = new QWebSettings(); // 获取 QWebView 的 QWebSettings 对象 QWebSettings* webViewSettings = webView->settings(); // 修改设置 webSettings->setAttribute(QWebSettings::JavascriptEnabled, true); webSettings->setAttribute(QWebSettings::JavaEnabled, true); webSettings->setAttribute(QWebSettings::PluginsEnabled, true); webSettings->setAttribute(QWebSettings::AutoLoadImages, true); webSettings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true); webSettings->setFontSize(QWebSettings::MinimumFontSize, 12); webSettings->setDefaultTextEncoding("utf-8"); // 应用设置 QApplication::setAttribute(Qt::AA_DontUseNativeDialogs); // 删除 QWebSettings 对象 delete webSettings; ``` 请注意,以上代码仅为示例,具体的设置内容和方法根据实际需求进行整。同时,需要确保在修改用 QApplication::setAttribute() 方法,以便使新的设置生效。 ### 回答3: 要重新设置QWebView设置,需要按照以下步骤进行操作: 1. 创建QWebSettings对象:使用QWebSettings类的构造函数创建一个新的QWebSettings对象。 ```cpp QWebSettings *settings = new QWebSettings(); ``` 2. 修改设置:使用QWebSettings对象的成员函数来修改相应的设置。可以使用以下函数进行常见设置修改: ```cpp settings->setAttribute(QWebSettings::JavascriptEnabled, true); //启用JavaScript settings->setAttribute(QWebSettings::PluginsEnabled, true); //启用插件 settings->setAttribute(QWebSettings::AutoLoadImages, true); //自动加载图片 settings->setFontSize(QWebSettings::MinimumFontSize, 10); //设置最小字体大小为10 // 设置其他设置... ``` 3. 应用设置QWebView对象:将设置应用到QWebView对象上。可以使用QWebView的settings()函数获取当前的QWebSettings对象,并使用QWebView的setSettings()函数设置新的QWebSettings对象。 ```cpp QWebView *webView = new QWebView(); webView->settings()->setSettingsObject(settings); ``` 4. 销毁旧的QWebSettings对象:在完成设置更改后,需要销毁之前的QWebSettings对象,以释放内存。 ```cpp delete settings; ``` 通过以上步骤,可以重新设置QWebView设置。可以根据需要修改不同的设置项,以实现个性化的配置,以满足特定的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值