Qt实现推拉效果

2017-01-12 19:07:01来源:CSDN作者:douyuan888人点击

最近公司做项目用到一个推拉的组件,发现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

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台