I'm currently having trouble updating labels continuously, I have tried my different ways but either nothing happens or the program stops working. I have attached below part of my code. Also I was hoping someone could explain exactly the purpose of def retranslateUi(self, MainWindow):
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("Tom")
MainWindow.setWindowModality(QtCore.Qt.NonModal)
MainWindow.resize(800, 600)
MainWindow.setAutoFillBackground(False)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.Date = QtWidgets.QLabel(self.centralwidget)
font = QtGui.QFont()
font.setPointSize(18)
self.Date.setFont(font)
self.Date.setAlignment(QtCore.Qt.AlignCenter)
self.Date.setObjectName("Date")
self.verticalLayout.addWidget(self.Date)
self.Time = QtWidgets.QLabel(self.centralwidget)
self.Time.setAlignment(QtCore.Qt.AlignCenter)
self.Time.setObjectName("It is currently " + datetime.strptime(d, "%H:%M:%S").strftime( " %I:%M:%S %p"))
self.verticalLayout.addWidget(self.Time)
self.Weather = QtWidgets.QLabel(self.centralwidget)
self.Weather.setAlignment(QtCore.Qt.AlignCenter)
self.Weather.setWordWrap(False)
self.Weather.setObjectName("Weather")
self.verticalLayout.addWidget(self.Weather)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addItem(spacerItem)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addItem(spacerItem1)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addItem(spacerItem2)
spacerItem3 = QtWidgets.QSpacerItem(771, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addItem(spacerItem3)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addItem(spacerItem4)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.verticalLayout.addItem(spacerItem5)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("Tom", "Tom"))
self.Date.setText(_translate("Tom", "Today is " + week_day +" the " + (ordinal(day)) + " of " + (month)))
self.Time.setText(_translate("Tom", "It is currently " + datetime.strptime(d, "%H:%M:%S").strftime( " %I:%M:%S %p")))
self.Weather.setText(_translate("Tom", "New York City " + str(ctemp) + "\xb0F " + string.capwords(status)))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
I want the label that gets the current time to keep updating and the call to weather api to happen about every 5 min. Any help is greatly appreciated!