当前位置: 首页 > news >正文

中山建设企业网站优设网logo设计

中山建设企业网站,优设网logo设计,seo整站优化报价,网站公司制作Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写#xff0c;所有平台无差别运行#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今#xff0c;Qt已被运用于超过70个行业、数千家企业#xff0c;支持数百万设备及应用。 本文中的CalendarWi…Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写所有平台无差别运行更提供了几乎所有开发过程中需要用到的工具。如今Qt已被运用于超过70个行业、数千家企业支持数百万设备及应用。 本文中的CalendarWidget示例展示了QCalendarWidget的用法。在上文中点击这里回顾我们为大家介绍了窗口类的定义和部分窗口类的实现本节将继续为大家讲解窗口类的实现。 点击获取Qt Widget组件下载(Q技术交流166830288 QCalendarWidget一次显示一个日历月并允许用户选择一个日期。日历由四个组件组成一个允许用户更改显示月份的导航栏、一个网格其中每个单元格表示一个月中的一天以及两个显示星期名称和星期数字的标题。 Calendar Widget示例显示一个QCalendarWidget并允许用户使用QComboBoxes、QCheckBoxes和QDateEdits配置其外观和操作此外用户可以影响单个日期和标题的格式。 本示例包含一个类Window它创建并布局QCalendarWidget和其他让用户配置QCalendarWidget的小部件。 窗口类实现 现在让我们看一下createDatesGroupBox()私有函数 void Window::createDatesGroupBox() { datesGroupBox new QGroupBox(tr(Dates));minimumDateEdit new QDateEdit; minimumDateEdit-setDisplayFormat(MMM d yyyy); minimumDateEdit-setDateRange(calendar-minimumDate(), calendar-maximumDate()); minimumDateEdit-setDate(calendar-minimumDate());minimumDateLabel new QLabel(tr(Minimum Date:)); minimumDateLabel-setBuddy(minimumDateEdit);currentDateEdit new QDateEdit; currentDateEdit-setDisplayFormat(MMM d yyyy); currentDateEdit-setDate(calendar-selectedDate()); currentDateEdit-setDateRange(calendar-minimumDate(), calendar-maximumDate());currentDateLabel new QLabel(tr(Current Date:)); currentDateLabel-setBuddy(currentDateEdit);maximumDateEdit new QDateEdit; maximumDateEdit-setDisplayFormat(MMM d yyyy); maximumDateEdit-setDateRange(calendar-minimumDate(), calendar-maximumDate()); maximumDateEdit-setDate(calendar-maximumDate());maximumDateLabel new QLabel(tr(Maximum Date:)); maximumDateLabel-setBuddy(maximumDateEdit); 在这个函数中我们创建Minimum Date, Maximum Date和Current Date编辑器小部件它们控制日历的最小日期、最大日期和所选日期。日历的最小和最大日期已经在createPrivewGroupBox()中设置然后我们可以将小部件的默认值设置为日历值。 connect(currentDateEdit, QDateEdit::dateChanged, calendar, QCalendarWidget::setSelectedDate); connect(calendar, QCalendarWidget::selectionChanged, this, Window::selectedDateChanged); connect(minimumDateEdit, QDateEdit::dateChanged, this, Window::minimumDateChanged); connect(maximumDateEdit, QDateEdit::dateChanged, this, Window::maximumDateChanged); ... } 我们将currentDateEdit的dateChanged()信号直接连接到日历的setSelectedDate()插槽当日历所选日期发生更改时无论是由于用户操作还是通过编程方式selectedDateChanged()槽都会更新Current date编辑器我们还需要在用户 Minimum Date和Maximum Date时做出反应。 下面是createTextFormatsGroup()函数 void Window::createTextFormatsGroupBox() { textFormatsGroupBox new QGroupBox(tr(Text Formats));weekdayColorCombo createColorComboBox(); weekdayColorCombo-setCurrentIndex( weekdayColorCombo-findText(tr(Black)));weekdayColorLabel new QLabel(tr(Weekday color:)); weekdayColorLabel-setBuddy(weekdayColorCombo);weekendColorCombo createColorComboBox(); weekendColorCombo-setCurrentIndex( weekendColorCombo-findText(tr(Red)));weekendColorLabel new QLabel(tr(Weekend color:)); weekendColorLabel-setBuddy(weekendColorCombo); 我们使用createColorCombo()来设置工作日颜色和周末颜色组合框它实例化了一个QComboBox并用颜色(Red, Blue等)填充它。 headerTextFormatCombo new QComboBox; headerTextFormatCombo-addItem(tr(Bold)); headerTextFormatCombo-addItem(tr(Italic)); headerTextFormatCombo-addItem(tr(Plain));headerTextFormatLabel new QLabel(tr(Header text:)); headerTextFormatLabel-setBuddy(headerTextFormatCombo);firstFridayCheckBox new QCheckBox(tr(First Friday in blue));mayFirstCheckBox new QCheckBox(tr(May 1 in red)); Header Text Format组合框允许用户更改用于水平和垂直标题的文本格式(粗体、斜体或普通) First Friday in blue和May 1 in red复选框会影响特定日期的呈现。 connect(weekdayColorCombo, QComboBox::currentIndexChanged, this, Window::weekdayFormatChanged); connect(weekdayColorCombo, QComboBox::currentIndexChanged, this, Window::reformatCalendarPage); connect(weekendColorCombo, QComboBox::currentIndexChanged, this, Window::weekendFormatChanged); connect(weekendColorCombo, QComboBox::currentIndexChanged, this, Window::reformatCalendarPage); connect(headerTextFormatCombo, QComboBox::currentIndexChanged, this, Window::reformatHeaders); connect(firstFridayCheckBox, QCheckBox::toggled, this, Window::reformatCalendarPage); connect(mayFirstCheckBox, QCheckBox::toggled, this, Window::reformatCalendarPage); 我们将复选框和组合框连接到各种私有插槽First Friday in blue和May 1 in red复选框连接到reformatCalendarPage()该方法在日历切换月份时也被调用。 ... reformatHeaders(); reformatCalendarPage(); } 在createTextFormatsGroupBox()的末尾我们调用私有槽来同步QCalendarWidget与其他小部件。 现在我们已经检查了四个create…GroupBox()函数看一下其他私有函数和槽。 QComboBox *Window::createColorComboBox() { QComboBox *comboBox new QComboBox; comboBox-addItem(tr(Red), QColor(Qt::red)); comboBox-addItem(tr(Blue), QColor(Qt::blue)); comboBox-addItem(tr(Black), QColor(Qt::black)); comboBox-addItem(tr(Magenta), QColor(Qt::magenta)); return comboBox; } 在createColorCombo()中我们创建了一个组合框并用标准颜色填充它QComboBox::addItem()的第二个参数是一个存储用户数据的QVariant(在本例中是QColor对象)。 此函数用于设置Weekday Color和Weekend Color组合框。 void Window::firstDayChanged(int index) { calendar-setFirstDayOfWeek(Qt::DayOfWeek( firstDayCombo-itemData(index).toInt())); } 当用户更改组合框值上的Week starts时firstDayChanged()将使用组合框新值的索引调用。我们使用itemData()检索与新的当前项关联的自定义数据项并将其转换为Qt::DayOfWeek。 selectionModeChanged()、horizontalHeaderChanged()和verticalHeaderChanged()与firstDayChanged()非常相似因此省略它们。 void Window::selectedDateChanged() { currentDateEdit-setDate(calendar-selectedDate()); }selectedDateChanged()更新Current Date编辑器以反映QCalendarWidget的当前状态。void Window::minimumDateChanged(QDate date) { calendar-setMinimumDate(date); maximumDateEdit-setDate(calendar-maximumDate()); } 当用户更改最小日期时告诉QCalenderWidget还更新了Maximum Date编辑器因为如果新的最小日期晚于当前的最大日期QCalendarWidget将自动调整其最大日期以避免矛盾状态。 void Window::maximumDateChanged(QDate date) { calendar-setMaximumDate(date); minimumDateEdit-setDate(calendar-minimumDate()); } maximumDateChanged()的实现类似于minimumDateChanged()。 void Window::weekdayFormatChanged() { QTextCharFormat format;format.setForeground(qvariant_castQColor( weekdayColorCombo-itemData(weekdayColorCombo-currentIndex()))); calendar-setWeekdayTextFormat(Qt::Monday, format); calendar-setWeekdayTextFormat(Qt::Tuesday, format); calendar-setWeekdayTextFormat(Qt::Wednesday, format); calendar-setWeekdayTextFormat(Qt::Thursday, format); calendar-setWeekdayTextFormat(Qt::Friday, format); } 每个组合框项都有一个QColor对象作为与该项文本对应的用户数据从组合框中获取颜色后我们设置一周中每一天的文本格式。 日历中列的文本格式为QTextCharFormat除了前景色外它还允许我们指定各种字符格式信息。在这个例子中我们只展示了可能性的一个子集。 void Window::weekendFormatChanged() { QTextCharFormat format;format.setForeground(qvariant_castQColor( weekendColorCombo-itemData(weekendColorCombo-currentIndex()))); calendar-setWeekdayTextFormat(Qt::Saturday, format); calendar-setWeekdayTextFormat(Qt::Sunday, format); } weekendFormatChanged()与weekdayFormatChanged()相同不同之处是它影响的是周六和周日而不是周一到周五。 当用户更改标题的文本格式时将调用reformatHeaders()插槽。我们比较标题文本格式组合框的当前文本以确定应用哪种格式。(另一种选择是将QTextCharFormat值存储在组合框项旁边。) void Window::reformatCalendarPage() { QTextCharFormat mayFirstFormat; const QDate mayFirst(calendar-yearShown(), 5, 1);QTextCharFormat firstFridayFormat; QDate firstFriday(calendar-yearShown(), calendar-monthShown(), 1); while (firstFriday.dayOfWeek() ! Qt::Friday) firstFriday firstFriday.addDays(1);if (firstFridayCheckBox-isChecked()) { firstFridayFormat.setForeground(Qt::blue); } else { // Revert to regular colour for this day of the week. Qt::DayOfWeek dayOfWeek(static_castQt::DayOfWeek(firstFriday.dayOfWeek())); firstFridayFormat.setForeground(calendar-weekdayTextFormat(dayOfWeek).foreground()); }calendar-setDateTextFormat(firstFriday, firstFridayFormat);// When it is checked, May First in Red always takes precedence over First Friday in Blue. if (mayFirstCheckBox-isChecked()) { mayFirstFormat.setForeground(Qt::red); } else if (!firstFridayCheckBox-isChecked() || firstFriday ! mayFirst) { // We can now be certain we wont be resetting May First in Red when we restore // may 1sts regular colour for this day of the week. Qt::DayOfWeek dayOfWeek(static_castQt::DayOfWeek(mayFirst.dayOfWeek())); calendar-setDateTextFormat(mayFirst, calendar-weekdayTextFormat(dayOfWeek)); }calendar-setDateTextFormat(mayFirst, mayFirstFormat); } 在reformatCalendarPage()中我们设置了该月的第一个星期五和当年的5月1日的文本格式实际使用的文本格式取决于选中了哪些复选框以及工作日/周末的格式。 QCalendarWidget允许我们使用setDateTextFormat()设置单个日期的文本格式选择在日历页面更改时设置日期格式-即显示新的月份-以及工作日/周末格式更改时设置日期格式。我们检查mayFirstCheckBox和firstDayCheckBox中的哪个被选中(如果有的话)并相应地设置文本格式。
http://www.sczhlp.com/news/152849/

相关文章:

  • 2025包装机厂家推荐榜单出炉:拉伸膜真空包装机,全自动真空包装机,滚动式真空包装机,食品真空包装机,气调包装机公司推荐!
  • 长沙城乡建设网站首页优化设计答案六年级
  • 网站建设与推广是什么羽毛球赛事有哪些
  • 珠海工程建设信息网站seo诊断站长
  • 深圳网站设计兴田德润官方网站哪家网站做旅游攻略好
  • 建站网站平台足球最新比赛消息
  • 网站备案域名证书好看动漫网替代网站
  • 企业建设网站费用求职网
  • 网站简易后台深圳各大网站制作哪家公司好
  • 怎么做模板网站企业网站制作是什么
  • 使用云主机做网站教程个人网页设计的主要内容和要求
  • 自己做微网站制作教程旅游电子商务 网站建设
  • 网站模块有哪些怎么开免费网站
  • wordpress搭建会员商丘整站优化
  • 张家港网站制作网络推广做营销网站 如何让商家入驻
  • 建筑工程公司需要什么资质石家庄seo管理
  • 设计公司网站建设费用新手做自己的网站
  • 国家高新技术企业查询网站wordpress 截取长度
  • 2025年真空机厂家推荐榜:平台式真空封口机,拉伸膜真空覆膜机,全自动拉伸膜真空包装机,滚动连续式真空包装机,双面拉伸真空包装机公司实力甄选指南
  • 安安互联怎么上传网站小程序商城开发
  • 莱芜网站建设价格动易网站无法安装
  • 网站模板中文乱码asp源码 自助建站
  • 网站建设网站制作哪个好最好的flash网站
  • 西安网站建设服务商十强塘沽网红书店
  • 刷网站软件开小加工厂去哪接单子
  • 网站建设有关表格个人公司注册流程及需要的材料
  • 闲鱼网站做交易是先付款吗网站建设需要的准备
  • 网站建设工期时间表wordpress调用全站最新文章
  • 做网赌网站得多少钱做外贸最适合的网站系统
  • 免费网站建设网站有那些科研网站怎么建设