0

I do have a problem while updating my content on-demand. My scenario: I want to create a GUI which stores information about some products and it should be displayed via a scroll are. This is working fine, but when I want to update the information like the quantity of my item, the GUI or the layout of my QVBoxLayout does not update the new information on the screen.

My code for the update function:

@pyqtSlot(GroupContent)
    def _updateData(self, box: GroupContent) -> None:
        prompt = UpdatePrompt(self._conn, box)
        prompt.exec()

        amount = self._top_layout.count()
        for i in range(amount):
            tmp = self._top_layout.itemAt(i).widget()

            if tmp.id != box.id:
                continue

            tmp.setTitle(box.title)
            tmp.lblPrice.setText(str(box.price))
            tmp.lblQuantity.setText(str(box.quantity))

The param box does already get the updated information from a QDialog. The self._top_layout variable will be created with self._top_layout = QVBoxLayout().

I already tried to call update on the Mainwindow and also on the top layout. Also tried directly accessing the widget with self._top_layout.itemAt(i).widget().setTitle('test') for example.

If this information is necessary, here is my function to dynamic generate the groupboxes:

    def _populate(self, insert: Boolean = False) -> None:
        data = self._getDBData(insert)
        for row in data:
            group_box = GroupContent()
            group_box.storage_id.connect(self._updateData)
            group_box.id = row.storage_id
            group_box.title = row.name
            group_box.price = row.price
            group_box.quantity = row.quantity
            group_box.image = row.image

            self._top_layout.addWidget(group_box)

0 Answers0