QCalendarWidget 呈现小

我正在尝试使用,QCalendarWidget但它没有按预期在用户界面中呈现。我看到的示例显示了一个类似于对象的日历选择器,但在我的情况下,我得到了一个非常小的字段渲染。这是它在 UI 中的样子:

http://img.mukewang.com/628ca0ec0001d73a09520724.jpg

这是我第一次使用它,所以我不确定我是否错过了一个步骤。关于我可能做错了什么有什么想法吗?这是正在使用的完整代码:


from PyQt5.QtWidgets import QMainWindow, QCalendarWidget, QLabel

from PyQt5 import QtCore, QtWidgets, QtGui



import sys


class Example(QMainWindow):


   def __init__(self):

      super(Example, self).__init__()


      self.initUI()


   def initUI(self):


      cal = QCalendarWidget(self)

      cal.setGridVisible(True)

      cal.move(20, 20)

      cal.clicked[QtCore.QDate].connect(self.showDate)


      self.lbl = QLabel(self)

      date = cal.selectedDate()

      self.lbl.setText(date.toString())

      self.lbl.move(20, 200)


      self.setGeometry(100,100,300,300)

      self.setWindowTitle('Calendar')

      self.show()


   def showDate(self, date):


      self.lbl.setText(date.toString())


def main():


    app = QtWidgets.QApplication(sys.argv)

    mainWin = Example()

    mainWin.show()

    sys.exit( app.exec_() )


if __name__ == '__main__':

   main()


繁星coding
浏览 159回答 1
1回答

莫回无

在 QMainWindow 的 centralWidget 中使用布局,例如 QVBoxLayout:import sysfrom PyQt5 import QtCore, QtGui, QtWidgets class Example(QtWidgets.QMainWindow):    def __init__(self):        super(Example, self).__init__()        self.initUI()    def initUI(self):        cal = QtWidgets.QCalendarWidget(gridVisible=True)        cal.clicked.connect(self.showDate)        self.lbl = QtWidgets.QLabel()        date = cal.selectedDate()        self.lbl.setText(date.toString())        central_widget = QtWidgets.QWidget()        self.setCentralWidget(central_widget)        lay = QtWidgets.QVBoxLayout(central_widget)        lay.addWidget(cal)        lay.addWidget(self.lbl)        self.setGeometry(100, 100, 300, 300)        self.setWindowTitle("Calendar")    @QtCore.pyqtSlot(QtCore.QDate)    def showDate(self, date):        self.lbl.setText(date.toString())def main():    app = QtWidgets.QApplication(sys.argv)    mainWin = Example()    mainWin.show()    sys.exit(app.exec_())if __name__ == "__main__":    main()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python