关于 scrollbar的 qss 样式设置

france1667 2010-07-06 04:05:17
QScrollBar:vertical {
border: 0.5px solid #dadbde;
background-color:#C6E2FF;

width: 20px;

}
QScrollBar::handle:vertical {
border: 0.5px solid #3d7bad;
background-color:qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
stop: 0 #F0FFFF, stop: 1 #C6E2FF);
border-radius: 3px;
min-height: 5px;

}


我在我的qss样式表里面加入这两段关于scrollbar的设置
会出现这么个情况 就中间那个 handle可以滚动的区域 会覆盖掉上下两个按钮(正常应该是handle在上下两个按钮之间滚动,)
但是 那上下的两个按钮还是可以点到的... 但是 只是那个handle会给他们覆盖掉
是哪个属性 设置handle的滚动区域大小的???

或者谁给我一个完整的scrollbar的样式设置 我看下 就加入到qss里面的

谢谢了~~~
...全文
776 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
中才德创 2010-07-07
  • 打赏
  • 举报
回复
qss文件本身是如何在QT中加载上的?

QT自身支持皮肤吗?

我在帮助中输入skin关键字,啥都找不到?
lefttime 2010-07-07
  • 打赏
  • 举报
回复
把QScrollBar::down-arrow:vertical中的“width: 8x” 补上, 不然8x不知道是什么东东@@
france1667 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hawkofwinter 的回复:]

qss文件本身是如何在QT中加载上的?

QT自身支持皮肤吗?

我在帮助中输入skin关键字,啥都找不到?
[/Quote]

在main函数里面加入这段代码

QFile file(":/qss/style.qss");
file.open(QFile::ReadOnly);
a.setStyleSheet(file.readAll());


首先得确保你的qss文件加入到资源文件里面了

关于你说的skin...应该就是在qss里面改动了
所有的空间颜色,边框,背景色,样式
都可以在qss里面设置
france1667 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lefttime 的回复:]

加上ScrollBar的间距设置和对两个方向按钮的控制就可以了~`
C/C++ code

QScrollBar:vertical {
border: 0.5px solid #dadbde;
background-color:#C6E2FF;

width: 20px;
[color=#FF0000]margin: 22px 0px 22px 0px;[/……
[/Quote]




谢谢,现在那个问题是解决了 可是 我这样写 scrollbar的 qss以后


QScrollBar:vertical {
border: 0.5px solid #dadbde;
background-color:#C6E2FF;

width: 20px;
margin: 22px 0px 22px 0px;
}

QScrollBar::handle:vertical {
border: 0.5px solid #3d7bad;
background-color:qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
stop: 0 #F0FFFF, stop: 1 #C6E2FF);
border-radius: 3px;
min-height: 5px;
margin: 0px -1px 0 -0.5px;
}

QScrollBar::handle:pressed{
background-color:qlineargradient(x1:0,y1:0,x2:1,y2:0,
stop: 0 #EBEBEB, stop: 1 #C6E2FF);
}

QScrollBar::add-line:vertical {
border: 1px solid grey;
height: 20px;

subcontrol-position: bottom;
subcontrol-origin: margin;
}

QScrollBar::sub-line:vertical {
border: 1px solid grey;
height: 20px;

subcontrol-position: top;
subcontrol-origin: margin;
}

QScrollBar::up-arrow:vertical{
border: 0px solid #CD00CD;
background-image :url(:qss/blue/arrow-up.png);
width: 8px;
height: 8px;
margin: 1px 2px 1px 4px;
/*background: none;*/
}
QScrollBar::down-arrow:vertical {
border: 0px solid #CD00CD;
width: 8x;
height: 8px;
border-style:outset;
background-image :url(:qss/blue/arrow-down.png);
margin: 1px 2px 1px 3px;
/*background: none;*/
}


向上的那个按钮上的箭头显示的很正常 ,但是,下面那个箭头的向下按钮上的图标却显示不出来
资源文件是没有问题的,
我之前就遇到过这个问题,
所以才开始一点一点的设置qss来寻找问题出在哪里
向下箭头显示不出来.

这是什么原因?
你有没有一个完整的scrollbar的样式表 能发出来我照着改一改...
这个问题困扰我很长时间了,谢谢了!!!
france1667 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lefttime 的回复:]

把QScrollBar::down-arrow:vertical中的“width: 8x” 补上, 不然8x不知道是什么东东@@
[/Quote]


我晕啊~~~~
还真是这个小的错误啊....
郁闷郁闷郁闷!!!!
呵呵 谢谢你了
眼睛真好!!!
lefttime 2010-07-06
  • 打赏
  • 举报
回复
加上ScrollBar的间距设置和对两个方向按钮的控制就可以了~`

QScrollBar:vertical {
border: 0.5px solid #dadbde;
background-color:#C6E2FF;

width: 20px;
margin: 22px 0px 22px 0px;
}

QScrollBar::handle:vertical {
border: 0.5px solid #3d7bad;
background-color:qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
stop: 0 #F0FFFF, stop: 1 #C6E2FF);
border-radius: 3px;
min-height: 5px;
}

QScrollBar::add-line:vertical {
border: 1px solid grey;
height: 20px;

subcontrol-position: bottom;
subcontrol-origin: margin;

}

QScrollBar::sub-line:vertical {
border: 1px solid grey;
height: 20px;

subcontrol-position: top;
subcontrol-origin: margin;

}

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧