1

我想在点击它时画出日期。这是代码: 日期 - 我要绘制的对象。希望得到帮助...

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

1 回答 1

1

我不完全确定您要在这里做什么,但是由于我自己在 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')

我突然想到你可能指的是print而不是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()
于 2013-09-20T18:34:41.897 回答