我有一個QCalendarWidget
和一個月的幾天是有顏色的(例如假期是紅色的)。當我選擇一個有顏色的日子時,選擇會清除顏色,而我看不到它的原始顏色。但是當我取消選擇那一天 - 顏色又回來了。請看照片。QCalendarWidget選擇顏色
有沒有辦法讓顏色,即使每天選擇?我知道有代表QTableView
與代表有關的方法,但我找不到QCalendarWidget
這樣的內容。有任何想法嗎?感謝您的時間。
我有一個QCalendarWidget
和一個月的幾天是有顏色的(例如假期是紅色的)。當我選擇一個有顏色的日子時,選擇會清除顏色,而我看不到它的原始顏色。但是當我取消選擇那一天 - 顏色又回來了。請看照片。QCalendarWidget選擇顏色
有沒有辦法讓顏色,即使每天選擇?我知道有代表QTableView
與代表有關的方法,但我找不到QCalendarWidget
這樣的內容。有任何想法嗎?感謝您的時間。
你可以訪問自己的日曆控件的內部QTableView
對象是這樣的:
QCalendarWidget *c = new QCalendarWidget;
QTableView *view = c->findChild<QTableView*>("qt_calendar_calendarview");
if (view)
{
view->setItemDelegate(new MySuperCalendarDelegate);
}
然後你可以使用一個自定義的委託,將設置適當的背景色和前景色。
你也可以檢查my previous answerQCalendarWidget
樣式。
我知道這是一年多了,如果我正確地理解了這個問題,我想我找到了一個更好的解決方案。在我的情況下,每一個日期被選定的時候,我設定的日期以黃色執行以下操作:
QTextCharFormat fmt;
fmt.setBackground(Qt::yellow);
m_ui->calender->setDateTextFormat(date, fmt);
和很長的時間我還設置了QCalenderWidget
這樣的樣式表:
setStyleSheet("QTableView{selection-background-color: yellow}")
如果我需要去選擇,我設置的日期顏色,原來,這是白色的,也做到以下幾點:
setStyleSheet("QTableView{selection-background-color: yellow}")
這對我的偉大工程。