我想在点击它时画出日期。 这是代码: date - 我想要绘制的对象。 希望得到帮助......
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cal = QtGui.QCalendarWidget(self)
cal.setGridVisible(True)
cal.clicked[QtCore.QDate].connect(self.showDate)
self.lbl = QtGui.QLabel(self)
date = cal.selectedDate()
self.lbl.setText(date.toString())
self.lbl.move(130, 150)
self.setGeometry(50, 50, 500, 400)
self.setWindowTitle('Calendar')
self.resize(500,400)
self.show()
def showDate(self, date):
self.lbl.setText(date.toString())
print date
print str(date.day()) + "/" + str(date.month()) + "/" + str(date.year()
答案 0 :(得分:0)
我不确定你在这里要做什么,但是因为我自己在zetcode.com上浏览PyQt4的教程,我想我可能会提出一些建议。
您可以通过添加样式表来更改lbl
的字体颜色。如果单击日历中的日期,则打印的标签将变为绿色:
def showDate(self, date):
self.label.setText(date.toString())
self.label.setStyleSheet('color: green')
如果您想为标签的背景上色,请按照以下方式进行:
def showDate(self, date):
self.label.setText(date.toString())
self.label.setStyleSheet('background-color: red')
我刚想到你可能意味着打印而不是 paint 。所以这是一种以样式格式打印日期的方法:
# in your initUI method:
self.dateLabel = QtGui.QLabel(self)
date = cal.selectedDate()
self.dateLabel.setText("{}/{}/{}".format(date.day(),
date.month(), date.year())) # output: 20/9/2013
# change your showDate method to this:
def showDate(self, date):
myDateFormat = "{}/{}/{}".format(date.day(), date.month(),
date.year())
self.dateLabel.setText(myDateFormat) # output: 1/1/2013
self.dateLabel.adjustSize()