下面的代码试图在按下按钮时创建新的窗口小部件,但是当我使用按钮按下来调用该函数时,除非我在 init 并立即调用它。我知道我可以这样做,然后使用show()/ hide(),但这对我的程序不起作用,因为在创建小部件之前我需要等待用户的输入,而且用户将决定创建多少个小部件及其无法预先创建所有这些对象,因为我不知道用户想要多少。对于我,他们正在寻找某种方法,该方法不会在按下按钮时创建任何对象。
任何反馈将不胜感激,谢谢!
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import time
"""Application"""
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
button = QPushButton(self)
button.setText("create widgets")
button.pressed.connect(self.call)
# self.createMulipleWidgets() cannot use this as it creates widget before user input
def call(self):
self.createMulipleWidgets()
def createMulipleWidgets(self):
# this will be dune dymanically so cannot be pre made so I cannot use show/hide
label = QLabel(self)
label.setText("create new label")
label.move(0, 40)
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()