PyQt5-无法在按下按钮时动态创建新的小部件

时间:2018-07-16 09:58:44

标签: python pyqt pyqt5

下面的代码试图在按下按钮时创建新的窗口小部件,但是当我使用按钮按下来调用该函数时,除非我在 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_()

0 个答案:

没有答案