qt 中widget/按钮等控件隐藏

  以QPushButton为例,如果想让他不显示,很多方法都可以实现。比如下边这五种都可以实现按钮的隐藏和显示。我们需要在合适的地方使用合适的方式。

    this->setVisible(0);
    this->setVisible(1);
    // 隐藏控件在屏幕上显示、不再占位置会改变布局。

    this->hide();
    this->show();
    // 通过析构和重新new实现显示/隐藏、不再占位置会改变布局。

    this->setFixedSize(36, 25);
    this->setFixedSize(36, 0);
    // 通过改变大小实现隐藏/显示、不再占位置会改变布局。

    QString btn_background=":xxx.png";
    this->setStyleSheet("border:none;background-image:url();");
    this->setStyleSheet(QString("border:none;background-image:url(%1);").arg(btn_background));
    // 通过改变背景图片实现显示/隐藏,占位置不改变布局,隐藏时候鼠标在该位置按下还会发送信号

	
	QString btn_backgrounds=":xxx.png||:xxxx.png";
 	QStringList tmp = sheet.split("||");
    this->setStyleSheet(
        QString("QPushButton:checked{"
                "border:none;"
                "background-image:url(%1);}"
                "QPushButton:!checked"
                "{border: none;"
                "background-image:url(%2);}").arg(tmp[0]).arg(tmp[1]));
     // 通过自身状态改变背景图片实现显示/隐藏,这里用的是checked,可以换成自定义属性,占位置不改变布局,隐藏时候鼠标在该位置按下还会发送信号

  链接的话可以把隐藏/显示封装成槽函数链接需要的信号,或者enterEventleaveEventresizeEvent里。看实际使需要情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beyond欣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值