Nominate our 2022 Qt Champions!

Resource management in a Qt class

  • I have a Widget class that displays certain information from a file.
    Say, the information can be shown in a QVBoxLayout which contains a number of QLabels depending on the file.
    The class also has a slot which is executed when a new file is opened.
    I want everything currently visible to be discarded and display the information from the new file.

    How do I 'delete' the old objects?
    I can not reuse(QLabel::setText) them, since the number of items will vary.

    When I just call delete the delete operator on them, I get a segfault.
    What is the recommended way of handling this in Qt?

  • it should work if you just remove the root widget of your layout from the view and then invoke the deleteLater() slot maybe?
    Also in the last I had no problem with just deleting a widget that was still visible, but that should be bad practice no matter if that works or not :D

Log in to reply