• 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)

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

  • 相关阅读:
    IO 模型知多少 | 代码篇
    IO 模型知多少 | 理论篇
    ASP.NET Core 反向代理部署知多少
    ASP.NET Core 借助 Helm 部署应用至K8S
    Orleans 知多少 | 4. 有状态的Grain
    Goodbye 2019,Welcome 2020 | 沉淀 2020
    Orleans 知多少 | 3. Hello Orleans
    集群环境下,你不得不注意的ASP.NET Core Data Protection 机制
    .NET Core 使用 K8S ConfigMap的正确姿势
    ASP.NET Core知多少(13):路由重写及重定向
  • 原文地址:https://www.cnblogs.com/GavinSimons/p/10399070.html
Copyright © 2020-2023  润新知