PDA

View Full Version : A Widget is not updated



sodlqnf123
6th July 2018, 15:18
I am having a hard time to find why the widget is not updated in my project.
Because the project is too big to upload in this post, I made a simplified code.




from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(191, 223)
self.verticalLayoutWidget = QtWidgets.QWidget(Form)
self.verticalLayoutWidget.setGeometry(QtCore.QRect (0, 170, 191, 21))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(55, 0, 55, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.saveButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.saveButton.setStyleSheet("background-color: rgb(200, 200, 200)")
self.saveButton.setFlat(False)
self.saveButton.setObjectName("saveButton")
self.verticalLayout.addWidget(self.saveButton)
self.layoutWidget = QtWidgets.QWidget(Form)
self.layoutWidget.setGeometry(QtCore.QRect(0, 20, 191, 22))
self.layoutWidget.setObjectName("layoutWidget")
self.threadcountLayout = QtWidgets.QHBoxLayout(self.layoutWidget)
self.threadcountLayout.setContentsMargins(5, 0, 0, 0)
self.threadcountLayout.setObjectName("threadcountLayout")
self.label = QtWidgets.QLabel(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Prefer red, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy ().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setObjectName("label")
self.threadcountLayout.addWidget(self.label)
self.threadcountLineEdit = QtWidgets.QLineEdit(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.threadcountLineE dit.sizePolicy().hasHeightForWidth())
self.threadcountLineEdit.setSizePolicy(sizePolicy)
self.threadcountLineEdit.setMinimumSize(QtCore.QSi ze(25, 20))
self.threadcountLineEdit.setMaximumSize(QtCore.QSi ze(1, 20))
self.threadcountLineEdit.setMaxLength(3)
self.threadcountLineEdit.setObjectName("threadcountLineEdit")
self.threadcountLayout.addWidget(self.threadcountL ineEdit)
self.label_2 = QtWidgets.QLabel(self.layoutWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Prefer red, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePoli cy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setObjectName("label_2")
self.threadcountLayout.addWidget(self.label_2)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.saveButton.setText(_translate("Form", "save"))
self.label.setText(_translate("Form", "HTTP thread count"))
self.threadcountLineEdit.setText(_translate("Form", "0"))
self.label_2.setText(_translate("Form", "s"))


class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(331, 351)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy ().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(331, 351))
MainWindow.setMaximumSize(QtCore.QSize(331, 351))
MainWindow.setStyleSheet("background-color:rgb(250, 255, 151)")


if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
ui = Ui_Form()
ui.setupUi(MainWindow)
sys.exit(app.exec_())

setupUi function of Ui_MainWindow is properly applied, but the one of Ui_Form is not applied.
How can I solve this problem?

d_stranz
6th July 2018, 22:45
Fix line 84 in the code you posted above.

sodlqnf123
7th July 2018, 02:23
Sorry, I have no idea what I should do with the line 84.

d_stranz
8th July 2018, 04:59
Try "ui.setupUi( Form )".