控件显示和隐藏

说明

  • GUI控件在不同情况下有多种状态,如下:
  1. 隐藏不占位;控件隐藏并且不占用窗口上的位置,例如:顺序布局,隐藏掉一个item,其位置会被其它元素占用。
  2. 隐藏占位;控件隐藏但是占用窗口上的位置,例如:隐藏掉该控件,其位置不会被其它元素占用。
  3. 显示但不可见;控件显示但是由于被其它控件遮挡,或者父控件未显示,导致实际上不可见。
  4. 显示并且可见;控件显示并且可见。
  • 由于控件显示隐藏有多种状态,如果使用bool类型表示这些状态,一个变量肯定是不够的;在web中有display(表示是否占位),show/hide(表示显示/隐藏), visible(表示是否可见)。
  • 显示/隐藏是控件自己的属性,和其它元素无关;而是否可见,既需要设置自身的属性也要根据其它元素的状况来判断。
  • 设置是否可见,并不是确定的行为,并不是设置可见后就能立马可见,也有可能被其它元素遮挡而导致不可见。

QT实现

  • QT控件有显示/隐藏以及是否可见的区别,暂时不清楚QT是否有占位与不占位的区别。

显示/隐藏

  • 设置
inline void show() { setVisible(true); }
inline void hide() { setVisible(false); }
  • 获取状态
bool isHiden()
  • 说明
  1. 显示/隐藏只是控件的一个属性,设置后可以立即获取,不会自动更改。
  2. 控件初始化后默认是显示的。

可见/不可见

  • 设置
virtual void setVisible(bool visible);
inline void setHidden(bool hidden) { setVisible(!hidden); }
  • 获取状态
bool isVisible()
  • 说明
  1. 可见/不可见需要根据很多条件进行判断,设置后并不是立即生效,立刻就可见,也并不一定会生效。
  2. 控件初始化后可能会出现由于电脑卡,需要一段时间才显示,isVisible返回false。
  • 注意项
  • 在某个博客中看到:如果向Qt部件窗口发送SW_HIDE消息,窗口是会隐藏的,但是其isVisible的值并未更新;未使用新版本验证,可能是老版本的问题。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中实现控制一个 `<mpdiv>`(小程序自定义组件)元素的隐藏显示,你可以使用Vue的数据绑定和条件渲染的功能。在小程序中,可以通过`wx:if`或`hidden`属性来实现元素的隐藏显示。下面是一种常见的方法: ```vue <template> <div> <button @click="toggleMPDiv">Toggle MPDiv</button> <mpdiv wx:if="isMPDivVisible" hidden="{{!isMPDivVisible}}"> <!-- 这里是你要显示的内容 --> </mpdiv> </div> </template> <script> export default { data() { return { isMPDivVisible: true }; }, methods: { toggleMPDiv() { this.isMPDivVisible = !this.isMPDivVisible; } } }; </script> ``` 在上面的示例中,我们使用了一个按钮来触发 `toggleMPDiv` 方法。这个方法会在 `isMPDivVisible` 数据属性的值上进行取反操作,从而切换 `<mpdiv>` 元素的显示隐藏。 通过使用 `wx:if` 属性,并将其值设置为 `isMPDivVisible`,我们可以根据 `isMPDivVisible` 的值来决定是否渲染该 `<mpdiv>` 元素。当 `isMPDivVisible` 为 `true` 时,`<mpdiv>` 元素会被渲染出来;当 `isMPDivVisible` 为 `false` 时,`<mpdiv>` 元素会被隐藏。 如果你的小程序自定义组件支持 `hidden` 属性,则你可以将 `hidden` 属性的值设置为 `{{!isMPDivVisible}}`,当 `isMPDivVisible` 为 `false` 时,`hidden` 属性的值为 `true`,表示隐藏该元素。 请将示例代码嵌入到你的Vue组件中,并根据需要进行调整。这样,你就可以实现在Vue中控制一个 `<mpdiv>` 元素的隐藏显示了。 希望这个示例对你有帮助!如果你有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值