我无法从QCalendarWidget()正确获取价值

时间:2019-03-31 19:12:22

标签: python pyqt

我正在使用Python制作基于日历的应用程序。为此,我正在使用PyQt5的QCalendarWidget()。但是,我无法正确获取所选日期。当我运行下面的代码时,无论单击哪一天,它都像graph = {'A': set(['B', 'C']), 'B': set(['A', 'D', 'E']), 'C': set(['A', 'F']), 'D': set(['B']), 'E': set(['B', 'F']), 'F': set(['C', 'E'])} def dfs_paths(graph, start, goal): stack = [(start, [start])] while stack: (vertex, path) = stack.pop() for next in graph[vertex] - set(path): if next == goal: yield path + [next] else: stack.append((next, path + [next])) dfs_paths(graph, 'A', 'F') 一样打印今天。我想要的是获取选定的日期。我该怎么解决?

PyQt5.QtCore.QDate(2019, 3, 30)

1 个答案:

答案 0 :(得分:1)

您要打印什么?您要打印变量 date ,在什么时候为变量 date 赋值?然后从头开始,然后再也不更新,因此 date 的值就是QCalendarWidget从今天开始的值。解决方案是使用承载信号的信息,您的广告位必须具有date参数

from PyQt5 import QtCore, QtWidgets

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = QtWidgets.QWidget()
    window.setWindowTitle("Reminder")
    cal = QtWidgets.QCalendarWidget(gridVisible=True)
    lay = QtWidgets.QVBoxLayout(window)
    lay.addWidget(cal)

    @QtCore.pyqtSlot(QtCore.QDate)
    def get_date(date): # <--- date parameter
        print(date)

    cal.clicked.connect(get_date)
    window.show()
    sys.exit(app.exec())