Удалить кнопку из окна PyQt5
Мне нужно чтобы при нажатии кнопка удалялась и появлялась другая (в любой точке, главное чтобы получилось).
from PyQt5 import QtWidgets, QtCore
class Window(QtWidgets.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.play_button = QtWidgets.QPushButton(self)
self.play_button.setGeometry(200, 500, 100, 50)
self.play_button.setObjectName('play_button')
self.play_button.setText('PLAY_BUTTON')
self.setGeometry(QtCore.QRect(100, 100, 600, 600))
self.play()
def play(self):
self.show()
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
void QWidget::move(int x, int y)
Это перегруженная функция.
Это соответствует перемещениюmove(QPoint(x, y)).Примечание: функция установки для свойства
pos.
from PyQt5 import QtWidgets, QtCore
import random # +++
class Window(QtWidgets.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.centralwidget = QtWidgets.QWidget()
self.centralwidget.setObjectName("centralwidget")
self.setCentralWidget(self.centralwidget)
self.play_button = QtWidgets.QPushButton(self.centralwidget)
self.play_button.setGeometry(200, 500, 100, 50)
self.play_button.setObjectName('play_button')
self.play_button.setText('PLAY_BUTTON')
self.play_button.clicked.connect(self.update_button) # +++
def update_button(self): # +++
x, y = [random.randint(0, 500) for _ in range(2)] # +++
self.play_button.move(x, y) # +++
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.resize(600, 600)
window.show()
sys.exit(app.exec_())
