一个按钮控制一个widget的显示与隐藏

weixin_38065217 2019-09-19 02:05:06
一个mainWidget上有一个按钮,按下这个按钮后,另一个widget根据当前状态来显示或者隐藏(关闭)。应该怎么写?我贴上我的代码:只能显示,不能关闭复制代码#include "mainwidget.h"#include "ui_mainwidget.h"#include <QDebug>mainWidget::mainWidget(QWidget *parent) :    QWidget(parent),    ui(new Ui::mainWidget){    ui->setupUi(this);    ui->SearchpushButton->setCheckable(true);    connect(ui->SearchpushButton,SIGNAL(toggled(bool)),this,SLOT(showOrhidemusicSearWidget(bool)));}//显示或者隐藏搜索窗口void mainWidget::showOrhidemusicSearWidget(bool toggle){    searchWidget = new Search(this);//实例化搜索窗口    //先取得主窗口的位置和大小    int mainWidget_x = this->x();    int mainWidget_y = this->y();    int mainWidget_width = this->width();    int mainWidget_height = this->height();    //然后设置要显示的窗口的大小与位置,大小与主窗口一样大,位置为在主窗口的右侧与主窗口平行。    searchWidget->setGeometry(mainWidget_x+mainWidget_width,mainWidget_y,mainWidget_width,mainWidget_height);    if(toggle){        searchWidget->show();    }else{        searchWidget->close();    }}void mainWidget::showSearchWidget(){    searchWidget->show();}void mainWidget::CloseSearchWidget(){    searchWidget->close();}mainWidget::~mainWidget(){    delete ui;}
...全文
614 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38067090 2019-09-19
  • 打赏
  • 举报
回复
因为这一行太威武了复制代码void mainWidget::showOrhidemusicSearWidget(bool toggle){    searchWidget = new Search(this);//实例化搜索窗口
weixin_38111164 2019-09-19
  • 打赏
  • 举报
回复
复制代码//显示或者隐藏搜索窗口void mainWidget::showOrhidemusicSearWidget(bool toggle){    //先取得主窗口的位置和大小    int mainWidget_x = this->x();    int mainWidget_y = this->y();    int mainWidget_width = this->width();    int mainWidget_height = this->height();    if(toggle){        searchWidget = new Search();//实例化搜索窗口        //然后设置要显示的窗口的大小与位置,大小与主窗口一样大,位置为在主窗口的右侧与主窗口平行。        searchWidget->setGeometry(mainWidget_x+mainWidget_width,mainWidget_y,mainWidget_width,mainWidget_height);        searchWidget->show();    }else{        searchWidget->hide();    }}
weixin_38114673 2019-09-19
  • 打赏
  • 举报
回复
引用第1楼dbzhang800于2012-08-24 13:43发表的  :[表情] 因为这一行太威武了复制代码void mainWidget::showOrhidemusicSearWidget(bool toggle){    searchWidget = new Search(this);//实例化搜索窗口....... 要new出多少个算合适呢?
weixin_38124148 2019-09-19
  • 打赏
  • 举报
回复
在构造函数中实例化一次就够了,然后show()、hide()

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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