PYQT5 動態刪除增加控制元件(不適用佈局情況)
阿新 • • 發佈:2018-12-18
工具/版本
(1)安裝環境:Windows7 64bit
(2)使用版本Python3.6
(3)PYQT5
(4)eric6
刪除控制元件:
self.buttom.deleteLater()
關閉控制元件:
self.button.close()或者self.button.hide()
重新顯示控制元件:
如果是刪除,需要重新建立控制元件 然後self.button.show()
如果是關閉,或者隱藏,self.show()
此處需注意:
如果多次建立相同名稱的控制元件,操作建立的控制元件會顯示異常,需要刪除再建立
# coding=utf-8 from PyQt5.QtWidgets import QWidget, QApplication, QPushButton import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(550, 300) self.setWindowTitle('動態刪除增加控制元件測試') self.CreatUI() def CreatUI(self): self.lb1 = QPushButton("按鍵1", self) self.lb1.setGeometry(100, 200, 100, 50) self.lb2 = QPushButton("按鍵1", self) self.lb2.setGeometry(280, 200, 100, 50) self.bt1 = QPushButton('刪除', self) self.bt2 = QPushButton('新建', self) self.bt1.move(100, 20) self.bt2.move(280, 20) self.bt1.clicked.connect(self.deleteWidget) self.bt2.clicked.connect(self.addWidget) def deleteWidget(self): self.lb1.deleteLater() self.lb2.deleteLater() self.bt1.deleteLater() def addWidget(self): self.CreatUI() self.showWidget() def closeWidget(self): # self.lb1.close() # self.lb2.close() # self.bt1.close() # 或者使用hide self.lb1.hide() self.lb2.hide() self.bt1.hide() def showWidget(self): self.lb1.show() self.lb2.show() self.bt1.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_())