2013-05-12 44 views
0

我想點擊日期來繪製日期。 這是代碼: date - 一個我想繪製的對象。 希望尋求幫助......如何在PyQt4日曆小部件中爲日期着色?

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

我不能完全確定你想在這裏做什麼,而是因爲我在上PyQt4的教程從zetcode.com黑客遠離自己,我想我可能會提出一些建議。

您可以通過添加樣式表來更改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') 

我剛想到,你可能的意思是打印而不是油漆。因此,您可以按照您的樣式格式打印日期:

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