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)

注:設置透明后,控件雖然看不見,但是點擊那個位置還是會觸發原控件綁定的事件。
如果想追求完美的話,可以在設置透明的同時,解除那個控件綁定的事件。
還提供一種思路,比如,設置布局里每個按鈕自己單獨包裹一層布局,可以設置布局的最小寬度和高度,這樣標准的隱藏的按鈕看不到按鈕了,但是仍然還保留着位置的,因為這里還有一個有最小值的布局給占着位置呢!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM