我需要帮助,需要从userChosenDate()
小部件中的函数OpenSelectDateTimeWindow
访问该值。从我的printCurrentDate
子窗口小部件中的pushButtonConfirm
单击之后,我需要在主窗口的QLabel对象OpenSelectDateTimeWindow
上打印此值。我已经设法打印出从子窗口小部件中的日历窗口小部件中选择的默认选定日期,但是我不知道在从子窗口小部件中选择另一个日期后如何让文本自动更新。
窗口小部件和主窗口的UI都是从QtDesigner生成的,并且未修改代码。这些是我为实例化UI添加的以下代码。
这是小部件的代码:
class OpenSelectDateTimeWindow(QtWidgets.QWidget, Ui_SelectDateTime):
# initialise GUI and window
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.setupUi(self)
# when Back button is clicked, window is closed
self.pushButtonBack.clicked.connect(self.close)
# when Confirm button is clicked, return day chosen by the user (print date, followed by day)
self.pushButtonConfirm.clicked.connect(self.userChosenDate)
self.pushButtonConfirm.clicked.connect(self.close)
# 2 functions to return selected date and time on the
# MainWindow UI / New Window UI where stall's information
# will be printed according to the user chosen date and time
# this function is to return user chosen date from the calendarWidget widget
def userChosenDate(self):
self.date = self.calendarWidget.selectedDate().toString("dd-MM-yyyy, dddd")
print(self.date) # for checking in terminal
return self.date
这是我主窗口的代码。
class OpenMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setupUi(self)
self.setDateAndTimeButton.clicked.connect(self.DateTimeWindow)
def DateTimeWindow(self):
self.SelectDateTimeWindow = OpenSelectDateTimeWindow()
# initialise GUI and window
self.SelectDateTimeWindow.show()
self.printCurrentDate.setText(self.SelectDateTimeWindow.userChosenDate())
################need help here###########################
#while self.SelectDateTimeWindow.pushButtonConfirm.clicked():
#dateString = self.SelectDateTimeWindow.userChosenDate()
#self.printCurrentDate.setText(dateString)
我发现,在我设置文本的函数上方添加@pyqtSlot()将允许我想要的工作。尽管我想知道是否有人可以解释@pyqtSlot()的实际作用,因为我对此并不十分熟悉。