• PyQt5——隐藏控件并保留位置


    原文地址:https://blog.csdn.net/qq_38161040/article/details/86605798

    ————————————————————————————————

    设置控件的可见度为0
    每种控件都有3种设置可见度为0的方法,下面来拿按钮的来举例了。
    # 标准的隐藏
    # 方法一:
    self.pushButton_3.hide()
    # 方法二:
    self.pushButton_3.setHidden(True)
    # 方法三:
    self.pushButton_3.setVisible(False)


    如果是绝对布局的话,隐藏当然不会影响位置的变化,但大家都知道绝对布局有很多缺点,比如改动的成本大,灵活性不高,适应能力很差等等。
    我们习惯嵌套在一些横向和纵向布局里,但是这种布局只要是里面的控件不可见,就相当于没有了,所以会重新分配各个组件的位置,这样我们的整体布局就会有所变化。


    但是我们设置控件的透明度,把透明度设置为0就好了,因为透明和不可见可不一样,透明是一种颜色。
    op = QtWidgets.QGraphicsOpacityEffect()
    # 设置透明度的值,0.0到1.0,最小值0是透明,1是不透明
    op.setOpacity(0)
    self.pushButton.setGraphicsEffect(op)

    注:设置透明后,控件虽然看不见,但是点击那个位置还是会触发原控件绑定的事件。
    如果想追求完美的话,可以在设置透明的同时,解除那个控件绑定的事件。
    还提供一种思路,比如,设置布局里每个按钮自己单独包裹一层布局,可以设置布局的最小宽度和高度,这样标准的隐藏的按钮看不到按钮了,但是仍然还保留着位置的,因为这里还有一个有最小值的布局给占着位置呢!

  • 相关阅读:
    正则表达式分组小记
    Python中关于try...finally的一些疑问
    hello,world!
    02操控奴隶——掌握它的语言“Python”
    01操控奴隶——奴隶的构成与运行方式
    vue特殊属性 key ref slot
    vue内置组件 transition 和 keep-alive 使用
    vue文档全局api笔记2
    vue文档全局api笔记1
    vue 二三倍图适配,1像素边框
  • 原文地址:https://www.cnblogs.com/GavinSimons/p/10399070.html
Copyright © 2020-2023  润新知