• 5558阅读
  • 6回复

qt在布局中增加一条线,并设置这个线的颜色???? [复制链接]

上一主题 下一主题
离线dai_lixing
 

只看楼主 倒序阅读 楼主  发表于: 2014-01-09
大家好, 我想在UI 中增加一条线, 并设置这条线的颜色, 我的设置是这样的:



    QLabel *blueLine=new QLabel();
    blueLine->setFrameStyle(QFrame::HLine | QFrame::Raised);
    blueLine->setLineWidth(2);
      blueLine->setStyleSheet("color:blue");   ///<-----------发现无法设置,  注意我要的是线的颜色 ,不是背景颜色,谢谢!




请问下是怎么做的,谢谢了
离线friendbaby

只看该作者 1楼 发表于: 2014-01-09
Smiling is best language , can express everything , also can conceal everything.

只看该作者 2楼 发表于: 2014-01-09
回 楼主(dai_lixing) 的帖子
很简单的
1、使用背景图片
2、单独实现一个类,使用paintEvent在里面划线
3、利用事件监听来划线

2、3灵活性比较高,用代码控制,不管是虚线、实线,甚至是其他图形都可以,相比之下,使用3更好,因为不可能需要一些单独的功能都去实现一个类。。。且事件监听比较方便!

只需要两步:
1、
line_label->installEventFilter(this);
2、
bool ContentWidget::eventFilter(QObject *obj, QEvent *event)
{
if(obj == line_label)
{
  if(event->type() == QEvent::Paint)
  {
   int label_height= line_label->height();
   int label_width = line_label->width();
   QPainter painter(line_label);
   painter.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
   painter.drawLine(label_width/2, 0, label_width/2, label_height);
  }
}
return QWidget::eventFilter(obj, event);
}

详情请参考:Qt之360安全卫士主界面(中央窗体)
里面包含划线部分。
博客地址:https://waleon.blog.csdn.net
微信公众号:高效程序员
QQ 群:242790253
微信群:加微信(iwaleon),邀请入群。

承接各种 C++/Qt/QML 项目,专业的团队,一流的服务,不二的选择!
离线dai_lixing

只看该作者 3楼 发表于: 2014-01-09
哦,谢谢各位,谢谢, 这么热情, 感动啊!

离线dai_lixing

只看该作者 4楼 发表于: 2014-01-09
谢谢各位了, 太感谢了, 这么及时 的回复, 比别的网站强多了,呵呵.

只看该作者 5楼 发表于: 2014-01-09
回 4楼(dai_lixing) 的帖子
只有相互学习、交流,技术才能更进一步!
博客地址:https://waleon.blog.csdn.net
微信公众号:高效程序员
QQ 群:242790253
微信群:加微信(iwaleon),邀请入群。

承接各种 C++/Qt/QML 项目,专业的团队,一流的服务,不二的选择!
离线shiziyang

只看该作者 6楼 发表于: 2014-01-10
线的颜色就是背景颜色,用background-color才对,color设的是你label上text的颜色
快速回复
限100 字节
 
上一个 下一个