为了账号安全,请及时绑定邮箱和手机立即绑定

QCalendarWidget 呈现小

QCalendarWidget 呈现小

繁星coding 2022-05-24 17:09:26
我正在尝试使用,QCalendarWidget但它没有按预期在用户界面中呈现。我看到的示例显示了一个类似于对象的日历选择器,但在我的情况下,我得到了一个非常小的字段渲染。这是它在 UI 中的样子:这是我第一次使用它,所以我不确定我是否错过了一个步骤。关于我可能做错了什么有什么想法吗?这是正在使用的完整代码:from PyQt5.QtWidgets import QMainWindow, QCalendarWidget, QLabelfrom PyQt5 import QtCore, QtWidgets, QtGuiimport sysclass 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()
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

在 QMainWindow 的 centralWidget 中使用布局,例如 QVBoxLayout:


import sys


from 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()

//img1.sycdn.imooc.com//628ca10200019e2304070324.jpg

查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信