关于Qt实现侧边栏隐藏与显示的效果

通过ToolButton来实现某控件的隐藏与显示,具体功能为点击toolbutton后,某widget(以tabWidget为例)隐藏于左侧,toolbutton位于(0,0)坐标处,显示的icon也进行切换;再次点击后,tabwidget展开,toolbutton还原。具体代码如下:

b_hideme = true;//需要初始化,否则运行后第一次点击没反应,第二次点击才隐藏

connect(ui.btn_hide,SIGNAL(clicked()),ui.tabwidget,SLOT(on_btn_hide_clicked()));//注意第三个参数不能是this,否则需要展开时没有响应,因为第一次tab在窗口中,而第二次点击时tab已不在

void maindlg::on_btn_hide_clicked()

{

if(b_hideme == false)

{

ui.tabwidget->setGeometry(0,0,ui.tabwidget->width(),ui.tabwidget->height());

ui.toolbutton->setGeometry(350,0,20,20);

ui.toolbutton->setArrowType(Qt::LeftArrow);

}

else{

ui.tabwidget->setGeometry(0,0,0,ui.tabwidget->height());

ui.toolbutton->setGeometry(0,0,20,20);

ui.toolbutton->setArrowType(Qt::RightArrow);

}

b_hideme = !b_hideme;

}

你可能感兴趣的:(关于Qt实现侧边栏隐藏与显示的效果)