Удаление кнопки, если существует с использованием Python PyQt5 - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь удалить кнопку в моем окне / интерфейсе. Я использую Python и PyQt5 для выполнения этой задачи, может кто-нибудь уведомить меня об удалении кнопки, если она существует? Или любую функцию для проверки? это мой пример кода:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot


class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("my window")
        self.setGeometry(100, 100, 320, 300)

        # creating a button
        button1 = QPushButton('Button-1', self)
        button1.move(100, 70)


       #I want a function to check if other button named "button2" exists,then delete it, like below
        if button2.exists:
           button2.delete()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())

1 Ответ

0 голосов
/ 21 октября 2019

Обычно вы сохраняете ссылку на виджеты, назначая их в качестве атрибутов класса. Затем вы можете проверить их наличие и удалить их:

def initUI(self):
    self.setWindowTitle("my window")
    self.setGeometry(100, 100, 320, 300)

    self.button1 =  QPushButton('Button-1', self)
    self.button1.move(100, 70)

    self.button2 = QPushButton('Button-2', self)
    self.button2.move(100, 90)

    if hasattr(self, 'button2'):
        self.button2.deleteLater()
...