I am trying to figure out how to create QPushButton by pressing another QPushbutton so that I can ultimately create buttons dynamically. It seems like the initial method for creating buttons doesn't work in a function.
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtCore import QSize
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(300, 200))
pybutton = QPushButton('Create a button', self)
pybutton.clicked.connect(self.clickMethod)
pybutton.resize(100,100)
pybutton.move(100, 100)
def clickMethod(self):
print('Clicked')
newBtn = QPushButton('New Button', self)
newBtn.move(0, 0)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit( app.exec_() )
When a window is displayed, it invokes the show()
method of its children, so the children are visible. If you want the buttons that you add afterwards to be visible you must call the show()
method of the button
def clickMethod(self):
print('Clicked')
newBtn = QPushButton('New Button', self)
newBtn.move(0, 0)
newBtn.show()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With