PyQt5 - 如何在没有布局的情况下向窗口动态添加小部件

时间:2021-02-22 22:47:55

标签: python pyqt pyqt5

我一直在尝试解决这个问题,我不想使用布局的原因是小部件在调整大小时随窗口缩放,我希望它们保持原状,我已经做到了拖放小部件,但由于它们处于布局中,因此将其弄乱了,请有人帮我解决这个问题。

我希望能够添加一个标签小部件,我想在我可以按下按钮的地方使用它,它会在我的窗口中创建一个新的标签小部件,我已经完成了这部分,但我想成为无需布局即可添加小部件。

1 个答案:

答案 0 :(得分:0)

您只需将属于窗口(或窗口本身)的另一个小部件设置为父窗口,并使用 show 方法使其可见:

import random
import sys

from PyQt5 import QtCore, QtWidgets


class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        button = QtWidgets.QPushButton("Add", self)
        button.clicked.connect(self.handle_clicked)

        self.resize(640, 480)

    def handle_clicked(self):
        pos = QtCore.QPoint(*random.sample(range(400), 2))
        label = QtWidgets.QLabel(self)
        label.move(pos)
        label.setText("{}-{}".format(pos.x(), pos.y()))
        label.show()


def main():
    app = QtWidgets.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec())


if __name__ == "__main__":
    main()
相关问题