Qt-QCalendarWidget只能选中周一及获取更新日期

获得更新日期:

1 //  ui.calendarWidget->setVerticalHeaderFormat (QCalendarWidget::ISOWeekNumbers);// lyy : 2016/8/26 8:54:14 说明:显示星期数
2     ui.calendarWidget->setVerticalHeaderFormat (QCalendarWidget::NoVerticalHeader);// lyy : 2016/8/26 8:56:07 说明:不显示星期数
1   void OnCalendarSelectChanged();
2         // lyy : 2016/8/26 8:27:56 说明:天或年更改时
3         void OnCalendarYearMonthChanged (int iYear, int iMonth);
1 connect (ui.calendarWidget,        SIGNAL (selectionChanged()),        this,        SLOT (OnCalendarSelectChanged()));
2     connect (ui.calendarWidget,        SIGNAL (currentPageChanged (int , int)),        this,        SLOT (OnCalendarYearMonthChanged (int, int)));
 1 QString AlarmPaper::strDateFromat = QObject::tr ("yyyy-MM-dd");
 2 void AlarmPaper::OnCalendarSelectChanged()
 3 {
 4     //const QChar* str=GlobalConstant::strDateFromat.data();
 5     mFlagTime = QDateTime (ui.calendarWidget->selectedDate());
 6     QString strTime = mFlagTime.toString (strDateFromat);
 7     ui.timeLabel->setText (strTime);
 8 }
 9 void AlarmPaper::OnCalendarYearMonthChanged (int iYear, int iMonth)
10 {
11     // lyy : 2016/9/20 10:57:18 说明:update the time mFlage
12     mFlagTime = QDateTime (QDate (iYear, iMonth, mFlagTime.date().day()));
13     QString strTime = mFlagTime.toString (strDateFromat);
14     ui.timeLabel->setText (strTime);
15 }

只能选周一,写在这了图片前不好加文字

 1 #include "layout_demo.h"
 2
 3 layout_Demo::layout_Demo (QWidget *parent, Qt::WFlags flags)
 4     : QMainWindow (parent, flags)
 5 {
 6     ui.setupUi (this);
 7     /* QDesktopWidget* desktopWidget = QApplication::desktop();
 8     QRect clientRect = desktopWidget->availableGeometry();
 9     QRect applicationRect = desktopWidget->screenGeometry();
10     ui.centralWidget->setFixedSize (applicationRect.width(), applicationRect.height());*/
11     //testDemo = new testWindow (ui.mainWindow_widget);
12     // testDemo->show();
13     //
14     //
15     connect (ui.calendarWidget,        SIGNAL (selectionChanged()),        this,        SLOT (OnCalendarSelectChanged()));
16     connect (ui.calendarWidget,        SIGNAL (currentPageChanged (int , int)),        this,        SLOT (OnCalendarYearMonthChanged (int, int)));
17     ui.calendarWidget->setSelectionMode (QCalendarWidget::SelectionMode (1));
18     // ui.calendarWidget->setFirstDayOfWeek (Qt::DayOfWeek::Friday);
19     oldDate = ui.calendarWidget->selectedDate();
20     // QDate firstFriday (ui.calendarWidget->yearShown(), ui.calendarWidget->monthShown(), 1);
21     //  QDate endRange = firstFriday.addMonths (1);
22     // ui.calendarWidget->setDateRange (firstFriday, endRange);
23     //
24 }
25
26 void layout_Demo::OnCalendarYearMonthChanged (int iYear, int iMonth)
27 {
28     if (oldDate.day() == ui.calendarWidget->selectedDate().day())
29     {
30         QDate firstFriday (ui.calendarWidget->yearShown(), ui.calendarWidget->monthShown(), 1);
31         // oldDate = ui.calendarWidget->selectedDate();
32         oldDate = firstFriday;
33     }
34
35     // lyy : 2016/9/12 11:11:49 说明: 判断是不是手动还是自动
36 }
37 void layout_Demo::OnCalendarSelectChanged()
38 {
39     //const QChar* str=GlobalConstant::strDateFromat.data();
40     QString strTime = ui.calendarWidget->selectedDate().toString ("ddd");
41     // QDate firstFriday (ui.calendarWidget->yearShown(), ui.calendarWidget->monthShown(), 1);
42
43     if (ui.calendarWidget->selectedDate().dayOfWeek() == 1 && oldDate.month() == ui.calendarWidget->monthShown())
44     {
45         // QMessageBox::information (this, "test", "d");
46         oldDate = ui.calendarWidget->selectedDate();
47     }
48
49     else
50     {
51         ui.calendarWidget->setSelectedDate (oldDate);
52     }
53
54     //ui.timeLabel->setText (strTime);
55     //
56 }
57 layout_Demo::~layout_Demo()
58 {
59 }

 1 #include <QtGui/QMainWindow>
 2 #include "ui_layout_demo.h"
 3 #include <QDesktopWidget>
 4 #include <QApplication>
 5 #include <QRect>
 6 #include "testwindow.h"
 7 #include <QCalendarWidget>
 8 #include <QMessageBox>
 9 #include <QDate>
10
11 class layout_Demo : public QMainWindow
12 {
13         Q_OBJECT
14
15     public:
16         layout_Demo (QWidget *parent = 0, Qt::WFlags flags = 0);
17         ~layout_Demo();
18
19     private slots:
20         // lyy : 2016/8/26 8:28:40 说明:日期更改时
21         void OnCalendarSelectChanged();
22         // lyy : 2016/8/26 8:27:56 说明:天或年更改时
23         void OnCalendarYearMonthChanged (int iYear, int iMonth);
24     private:
25         Ui::layout_DemoClass ui;
26         testWindow *testDemo;
27         QDate oldDate;
28 };

http://pan.baidu.com/s/1eR2c6NC

时间: 2024-10-13 11:47:26

Qt-QCalendarWidget只能选中周一及获取更新日期的相关文章

Qt之QHeaderView自定义排序(获取正确的QModelIndex)

简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题...比如:获取QModelIndex索引错误. 下面,我们先来实现一个整行选中的效果. 简述 错误处理 效果 源码 分析 正常处理 效果 源码 错误处理 效果 下面是一个非正常的的效果,选中当前行会造成更新错误,Why? 源码 // 连接信号槽 connect(pTableView, SIGNAL(clicked(QModelIndex)), this, SLOT(onC

android SDK manager 无法获取更新版本列表【转载】

http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息:  http://developer.android.com/sdk/installing/installing-adt.html 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/https://dl-ssl.

[转] Android SDK manager 无法获取更新版本列表

打开这个网址(LINK)就可以看到adt的详细信息. 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ssl.google.com/android/eclipse/ https://dl-ssl.google.com/android/eclipse/ 到Android SDK官网下载ADT离线升级包 http://developer.android.com/sdk/installing/installing-ad

javascript中如何让两个radio同时只能选中一个

<html> <head> <title>测试</title> </head> <body leftmargin="0" topmargin="0"> <form> <input type="radio" name="sex1" value="male">Male <br> <input typ

C#获取周一、周日的日期,月初,月末,季度第一天,季度最后一天

DateTime dt = DateTime.Now;  //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));  //本周周一 DateTime endWeek = startWeek.AddDays(6);  //本周周日 DateTime startMonth = dt.AddDays(1 - dt.Day);  //本月月初 DateTime endMont

获取指定日期的常用前后节点(月初月末周一周末等等)

原文:获取指定日期的常用前后节点(月初月末周一周末等等) 注:周节点方面是根据中国习惯,视周一为起,周日为末. /*--------------------------------- 函数:获取某日期的特定起止节点v0.01 Author:AhDung Update:201305151755 ---------------------------------*/ ALTER FUNCTION dbo.FGetSpecialDate_ahdung(@date DATE, @SpcDate VARC

【边做项目边学Android】手机安全卫士03:获取更新的服务器配置,显示更新对话框

配置应用程序在手机桌面显示的名称和图标-AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.liuhao.mobilesafe" android:versionCode="

利用html5中的classList.toggle实现给单击过得元素添加动态class类,并且每次只能选中一个

1.页面: 2.html代码: <div class="project-all"> <template v-for='(index,project) in projectData'> <div class="project" v-on:click='projectSelectFun($event,index)'>{{project.projectName}}</div> </template> <di

获取更新元素文本text()

text() 方法,获取元素文本,也可以设置元素的文本值.相 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>获取更新元素文本</title> <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.min.js&q