Qt应用开发(基础篇) |
您所在的位置:网站首页 › 四月份的日历怎么写好看呢 › Qt应用开发(基础篇) |
一、前言
QCalendarWidget类继承于QWidget,是Qt设计用来让用户更直观的选择日期的窗口部件。 时间微调输入框 QCalendarWidget根据年份和月份初始化,程序员也通过提供公共函数去改变他们,默认日期为当前的系统时间,用户通过鼠标和键盘去修改选中的日期,或者通过公共函数setSelectedDate改变它,也可以设置选择模式selectionMode去限制用户的行为,通过设置最小时间minimumDate和最大时间maximumDate限制可选择的日期范围。 日历的样式,第一行默认显示星期几,周六和周天是标记为红色,第一列显示一年中的第几周,默认没有网格线,第二列显示为系统时间的每周第一天,也就是说如果你系统时间是在北京,那么第一天是周一,如果是在美国,那么第一天就是周日,可以通过setFirstDayOfWeek修改默认值。 该属性表示是否使用一个弹出框来选择当前选中时间,按下非修饰键(空格、字母等)会弹出一个日期编辑框,如果按下的是数字,弹窗并认为按下的数字为输入,弹窗的小部件类似于QDateEdit,修改之后会在一定的延迟dateEditAcceptDelay之后生效。 bool isDateEditEnabled() const void setDateEditEnabled(bool enable)该属性表示,在dateEditEnabled为true的情况下,弹窗小部件编辑结束之后延迟多久生效,参数为毫秒ms。 int dateEditAcceptDelay() const void setDateEditAcceptDelay(int delay) 3、firstDayOfWeek该属性表示每周的第一天是周几。 Qt::DayOfWeek firstDayOfWeek() const void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek) Qt::DayOfWeek描述Qt::Monday周一Qt::Tuesday周二Qt::Wednesday周三Qt::Thursday周四Qt::Friday周五Qt::Saturday周六Qt::Sunday周日该属性表示是否显示表格线,默认为false不显示。 bool isGridVisible() const void setGridVisible(bool show)该属性表示水平标题的格式。 SingleLetterDayNames:显示单个字母,比如M表示Monday,中文只会显示周,而不是一、二、三这样,是有bug的,所以该格式只适用于英文。 ShortDayNames:显示简称名,比如英文Mon表示Monday,中文周一表示星期一。 LongDayNames:显示全称,比如英文Monday,中文星期一。 NoHorizontalHeader:不显示水平标题。 HorizontalHeaderFormat horizontalHeaderFormat() const void setHorizontalHeaderFormat(HorizontalHeaderFormat format)![]() 该属性表示垂直标题的格式,默认为ISOWeekNumbers显示为一年中的第几周,还有一种NoVerticalHeader不显示。 VerticalHeaderFormat verticalHeaderFormat() const void setVerticalHeaderFormat(VerticalHeaderFormat)![]() 该属性表示日历可选择的最大日期,如果设置了最大日期,而选择日期大于最大日期,那么当前日期会被调整。如果使用setSelectedDate选择日期大于最大日期,那么不会生效。 QDate maximumDate() const void setMaximumDate(const QDate &date) 8、minimumDate该属性表示日期可选择的最小日期,效果参照maximumDate。 QDate minimumDate() const void setMinimumDate(const QDate &date) 9、navigationBarVisible该属性表示导航是否显示,默认为true,下个月、上个月、月选择、年选择可视。 bool isNavigationBarVisible() const void setNavigationBarVisible(bool visible)![]() 该属性表示当前选择的日期,设置不可超出最大值maximumDate和最小值minimumDate范围,否则无效。 QDate selectedDate() const void setSelectedDate(const QDate &date) 11、selectionMode该属性表示用户选择日期的策略。 默认为SingleSelection,用户可以通过鼠标或者键盘在范围内进行日期的选择。 还有一种是NoSelection,用户不能选择日期,但是依然可以通过程序selectedDate去选择。 SelectionMode selectionMode() const void setSelectionMode(SelectionMode mode) 12、公共函数 1)dateTextFormat获取文本格式,使用QTextCharFormat封装,类包含文本字体属性、布局属性等内容。可返回每个日期的文本格式,使用一个QMap保存每个日期对应的格式,这样Map内容很大,不建议这么干,尽量使用第二个。 QMap dateTextFormat() const QTextCharFormat dateTextFormat(const QDate &date) const设置文本格式,使用QTextCharFormat封装,类包含文本字体属性、布局属性等内容。 void setDateTextFormat(const QDate &date, const QTextCharFormat &format) 2)monthShown获取当前显示的月份。 int monthShown() const 3)yearShown获取当前显示的年份。 int yearShown() const 4)weekdayTextFormat获取显示日期的文本格式,参考dateTextFormat QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const设置日期显示的文本格式,参考dateTextFormat void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format) 5)setCurrentPage设置当前要显示年和月,类似setSelectedDate。 void setCurrentPage(int year, int month) 6)setDateRange设置当前可选日期的范围,相当于setMaximumDate和setMinimumDate。 void setDateRange(const QDate &min, const QDate &max) 7)showNextMonth主动显示下个月。 void showNextMonth() 8)showNextYear主动显示下一年。 void showNextYear() 9)showPreviousMonth主动显示上个月。 void showPreviousMonth() 10)showPreviousYear主动显示上一年。 void showPreviousYear() 11)showSelectedDate主动显示当前选择的日期,比如你主动showPreviousMonth显示了上个月,在没有重新选中日期的情况下,使用此函数可以回到当前选择的日期,当然也可以记住选择,用setSelectedDate回到过去。 void showSelectedDate() 12)showToday主动显示系统日期。 void showToday() 13、信号 1)activated用户按下RETURN键、Enter键或者双击日历的时候触发,得到当前选择的时间。 void activated(const QDate &date) 2)clicked用户点击选择时间的时候触发,但是如果用户点击的区域超出范围,或者用户设置选择策略selectionMode为NoSelection,那么不会触发。 void clicked(const QDate &date) 3)currentPageChanged当前页改变的时候触发,得到新页的年份和月份。 void currentPageChanged(int year, int month) 4)selectionChanged当前选择的日期改变的时候触发,用户可以通过鼠标、键盘或者setSelectedDate改变当前选择的时间。 void selectionChanged() |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |