Qt模块化笔记之Qt Widgets——日历类

日历类QCalendarWidget 主要用于选择一个日期。直接继承自QWidget,外观如下:


属性值字面解释如下:

Properties



公有函数详细解释始下:

QCalendarWidget(QWidget * parent = 0)
	~QCalendarWidget()

void	setDateEditAcceptDelay(int delay)//未知功能,求教
void	setDateEditEnabled(bool enable)//未知,求教
void	setDateTextFormat(const QDate & date, const QTextCharFormat & format)//设置单个日期小格子的显示样式
void	setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek)//重新设置一星期的第一天,默认星期天,参数枚举值见下方1
void	setHeaderTextFormat(const QTextCharFormat & format)//同时设置水平头与竖直头的格式,与下面两个不同,此函数参数是一个类。具体部位见上图各部分说明
void	setHorizontalHeaderFormat(HorizontalHeaderFormat format)//设置水平头的样式,参数是枚举值,参数见3
void	setVerticalHeaderFormat(VerticalHeaderFormat format)//设置竖直头的样式,参数见枚举3
void	setMaximumDate(const QDate & date)
void	setMinimumDate(const QDate & date)
void	setSelectionMode(SelectionMode mode)//选择模式,参数枚举型,有单选与不可选两种,见枚举值说明2
void	setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat & format)//设置一个星期的第一天,默认星期天,即图中第一列为“星期天”

int	dateEditAcceptDelay() const
bool	isDateEditEnabled() const
QMap<QDate, QTextCharFormat>	dateTextFormat() const
QTextCharFormat	dateTextFormat(const QDate & date) const
Qt::DayOfWeek	firstDayOfWeek() const
QTextCharFormat	headerTextFormat() const
HorizontalHeaderFormat	horizontalHeaderFormat() const
QDate	maximumDate() const
QDate	minimumDate() const
SelectionMode	selectionMode() const
VerticalHeaderFormat	verticalHeaderFormat() const
QTextCharFormat	weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const

bool	isGridVisible() const
bool	isNavigationBarVisible() const
int	monthShown() const
QDate	selectedDate() const//返回当前选定的日期
int	yearShown() const//返回当前选定年份值,2014,加上上一个就是完整的年月日了
1,enum Qt::DayOfWeek

Constant Value
Qt::Monday 1
Qt::Tuesday 2
Qt::Wednesday 3
Qt::Thursday 4
Qt::Friday 5
Qt::Saturday 6
Qt::Sunday 7
2,enum QCalendarWidget::SelectionMode

Constant Value Description
QCalendarWidget::NoSelection 0 不可选,图中dataText区域单击无效果
QCalendarWidget::SingleSelection 1 可选,单击其它日期后背景变蓝(默认)
3,enum QCalendarWidget::HorizontalHeaderFormat

Constant Value Description
QCalendarWidget::SingleLetterDayNames 1 只显示一个字符,英文Monday显示“M”,中文周一显示“周”
QCalendarWidget::ShortDayNames 2 显示缩减名(如Monday时Mon).中文没效果
QCalendarWidget::LongDayNames 3 显示全名
QCalendarWidget::NoHorizontalHeader 0 隐藏
3,enum QCalendarWidget::SelectionMode

Constant Value Description
QCalendarWidget::ISOWeekNumbers 1 显示如图中的默认数字
QCalendarWidget::NoVerticalHeader 0 隐藏

Public Slots

void setCurrentPage(int year, int month)
void setDateRange(const QDate & min, const QDate & max)
void setGridVisible(bool show)//是否显示网格,格子样子见下方例子
void setNavigationBarVisible(bool visible)//最上方蓝色的导航条,去掉后就只能选择当月的日期了
void setSelectedDate(const QDate & date)//默认显示的是当前日期,可以用这个改变
void showNextMonth()
void showNextYear()
void showPreviousMonth()
void showPreviousYear()
void showSelectedDate()
void showToday()

Signals

void activated(const QDate & date)
void clicked(const QDate & date)
void currentPageChanged(int year, int month)
void selectionChanged()


示例代码如下:
    //setDateTextFormat示例
    QDate date=QDate::currentDate();
    QTextCharFormat t;
    t.setBackground(Qt::gray);
    ui->calendarWidget->setDateTextFormat(date,t);
    
    
    ui->calendarWidget->setFirstDayOfWeek(Qt::Monday);

    ui->calendarWidget->setHorizontalHeaderFormat(QCalendarWidget::ShortDayNames);
    ui->calendarWidget->setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader);

    //ui->calendarWidget->setNavigationBarVisible(false);
    ui->calendarWidget->setGridVisible(true);
    ui->calendarWidget->setSelectionMode(QCalendarWidget::NoSelection);

    qDebug()<<ui->calendarWidget->yearShown();
结果如下(今天是2014年1月16日):


图中16号这个日期由setDateTextFormat()将它的背景设置成灰色,QTextCharFormat是一个用于修改文本样式的类。

左上角和右上角的箭头是改变月份的,也可在“一月”处点击,直接选择,“2014”字处点击后会变成一个spinbox,可直接编辑年份
其它部分不可修改。
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值