PyQt:动态添加 qpushbutton

riy*_*ude 5 python pyqt dynamic qpushbutton pyqt5

我想弄清楚如何通过按下另一个 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_() )
Run Code Online (Sandbox Code Playgroud)

eyl*_*esc 7

当一个窗口被显示时,它调用show()其子窗口的方法,所以子窗口是可见的。如果您希望您之后添加的按钮可见,您必须调用show()按钮的方法

def clickMethod(self):
    print('Clicked')
    newBtn = QPushButton('New Button', self)
    newBtn.move(0, 0)
    newBtn.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明