PyQt:动态添加 qpushbutton

PyQt: Add qpushbutton dynamically

我想弄清楚如何通过按下另一个 QPushbutton 来创建 QPushButton,以便我最终可以动态创建按钮。看起来创建按钮的初始方法在函数中不起作用。

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_() )

当显示 window 时,它会调用其子项的 show() 方法,因此子项是可见的。如果您希望之后添加的按钮可见,您必须调用按钮的 show() 方法

def clickMethod(self):
    print('Clicked')
    newBtn = QPushButton('New Button', self)
    newBtn.move(0, 0)
    newBtn.show()