Qt实现推拉效果

最近公司做项目用到一个推拉的组件,发现Qt并没有这个组件,于是就用Qt的QWidget封装了一个,实现的效果如下图:


图拉开时的效果,拉出来的上面是一个QWidget组件可以放其他的组件如按钮、标签、表格等...


这是合上的效果图,左边有个小按钮,点击一下又可以出来。而且不影响其他组件以及布局。

核心代码如下:

添加一个widget

    w = new QWidget(this) ;
    btn = new QPushButton("Btn",w) ;
    connect(btn,SIGNAL(clicked()),this,SLOT(clicked()));
    btn->setStyleSheet("background-color:rgb(255,255,255)");
实现推拉功能代码:

void Widget::clicked()
{
    if(isOpen == false)
    {
        isOpen = true ;
        w->setGeometry(0,0,this->width()/3,this->height());
        w->setStyleSheet("background-color:rgb(255,34,198)");
        btn->setGeometry(w->width() - 20,w->height()/2 -50,20,100);
        btn->setText("<-");
    }
    else
    {
        isOpen =false ;
        w->setGeometry(0,10,20,this->height());
        w->setStyleSheet("background: transparent;");
        btn->setGeometry(w->width() - 20,w->height()/2 -50,20,100);
        btn->setText("->");
    }
}

合上的时候widget还是存在,只是重新设置了widget的大小,留了大概有10个像素,并设置背景透明。

工程源码,欢迎下载:http://download.csdn.net/detail/douyuan888/9735733

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值