How to Develop a Calendar Widget.
-
wrote on 13 Apr 2011, 12:20 last edited by
hello andre,these were the same slots which i had show earlier in this post..i was connecting those slots with signals in my second dialog,I hope you r getting me..
-
wrote on 13 Apr 2011, 12:28 last edited by
OK. Fine, you are re-using the slots you already had. Great, and sensible I suppose. And does that all work properly now?
-
wrote on 13 Apr 2011, 12:30 last edited by
Now Andre...its not working
-
wrote on 13 Apr 2011, 12:36 last edited by
Is the problem that you don't see the dialog pop up, or that the dates are not cleared when you click one of the buttons on the dialog?
Did you:
- actually connect the signals with the slots?
- check your output while running to see if the connection worked?
- put debug statements or breakpoints at the relevant places to track what breaks down exactly?
-
wrote on 13 Apr 2011, 12:44 last edited by
actually dates colors are not cleared,when i click on the buttons..
-
wrote on 13 Apr 2011, 12:45 last edited by
[quote author="Andre" date="1302698169"]Did you:
- actually connect the signals with the slots?
- check your output while running to see if the connection worked?
- put debug statements or breakpoints at the relevant places to track what breaks down exactly?
[/quote]
-
wrote on 13 Apr 2011, 12:51 last edited by
i will check it out and get back to u..thanks for your help
-
wrote on 14 Apr 2011, 05:50 last edited by
hwy volker i created two signals and i emitted them on click of push buttons,now in which dialog i should connect signals and which will be the sender and reciever ,I m not getting..
regards
imrrk -
wrote on 14 Apr 2011, 06:19 last edited by
The sender of the signal is typically the object, that sends them, the receivedr is the object that implements the slots.
so If you are inside the code of dlg1, which implements the slots and invoke there a dialog dlgh2 which emiuts the signals you do:
@
dlg1::foo()
{
dlg2 dlg;
connect(&dlg, SIGNAL(fooSignal()), this, SLOT(fooSlot()));
dlg.exec();
}
@ -
wrote on 14 Apr 2011, 06:55 last edited by
hey gerolf in dialog1.cpp ,i have emmitted two signals on click of push buttons and connected them as shown below..I dont know whether i am correct in this,now I have my maindialog1.cpp where i wriiten the slots for setting colors,now I am not getting how shall i make connections with the signals i emmitted in dialog1.cpp and the slots in my maindialog.cpp,which contains the slots..
@#include "dialog1.h"
#include "ui_dialog1.h"
#include<QCalendarWidget>
Dialog1::Dialog1(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog1)
{
ui->setupUi(this);
connect(ui->set,SIGNAL(clicked()),this,SIGNAL(setclicked()));
connect(ui->unset,SIGNAL(clicked()),this,SIGNAL(unsetclicked()));
}Dialog1::~Dialog1()
{
delete ui;
}void Dialog1::on_set_clicked()
{
emit setclicked();
}void Dialog1::on_unset_clicked()
{
emit unsetclicked();
}
@
this my dialog.cpp//
@#include "dialog.h"
#include "ui_dialog.h"
#include<QCalendarWidget>
#include<QDate>
#include "dialog1.h"
#include "ui_dialog1.h"
#include<QPainter>
#include <QtGui/QApplication>Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
//Dialog1 a(this);
connect(&Dialog1,SIGNAL(setclicked(),this,SLOT(setcolors())));
connect(&Dialog1,SIGNAL(unsetclicked(),this,SLOT(unsetcolors())));// QCalendarWidget *cal=new QCalendarWidget();
// cal->setDateEditEnabled(1);
// cal->setFirstDayOfWeek(Qt::Wednesday);// cal->show();
//ui->calendarWidget->setFirstDayOfWeek(Qt::Thursday);//QTextCharFormat colddate;
//colddate.setBackground(Qt::yellow);//QTextCharFormat hotdate;
//hotdate.setBackground(Qt::red);//QTextCharFormat wetdate;
//wetdate.setBackground(Qt::green);//QTextCharFormat raindate;
//raindate.setBackground(Qt::blue);//ui->calendarWidget->setDateTextFormat(QDate(2011,4,1),colddate);
//ui->calendarWidget->setDateTextFormat(QDate(2011,4,5),hotdate);
//ui->calendarWidget->setDateTextFormat(QDate(2011,4,8),wetdate);
//ui->calendarWidget->setDateTextFormat(QDate(2011,4,9),raindate);
//ui->calendarWidget->setDateTextFormat(QDate(2011,4,12),colddate);
//ui->calendarWidget->setDateTextFormat(QDate(2011,4,14),hotdate);
}Dialog::~Dialog()
{
delete ui;
}void Dialog::on_calendarWidget_clicked(QDate date)
{
// ui->label->setText(date.toString());
//ui->textBrowser->setText(date.toString());
Dialog1 a(this);
a.show();
a.exec();// ui->pushButton->setText(QString::number(date.day()));
}
void Dialog::setcolors()
{safedate.setBackground(Qt::green); //safedate.BackgroundImageUrl
unsafedate.setBackground(Qt::yellow);
fertiledate.setBackground(Qt::red); startdate.setBackground(Qt::blue); ui->calendarWidget->setDateTextFormat(QDate(2011,4,1),startdate); ui->calendarWidget->setDateTextFormat(QDate(2011,4,5),safedate); ui->calendarWidget->setDateTextFormat(QDate(2011,4,8),unsafedate); ui->calendarWidget->setDateTextFormat(QDate(2011,4,9),fertiledate); ui->calendarWidget->setDateTextFormat(QDate(2011,4,12),unsafedate); ui->calendarWidget->setDateTextFormat(QDate(2011,4,14),safedate);
}
void Dialog::unsetcolors()
{
startdate.clearBackground();
safedate.clearBackground();
unsafedate.clearBackground();
fertiledate.clearBackground();
ui->calendarWidget->setDateTextFormat(QDate(2011,4,1),startdate);
ui->calendarWidget->setDateTextFormat(QDate(2011,4,5),safedate);
ui->calendarWidget->setDateTextFormat(QDate(2011,4,8),unsafedate);
ui->calendarWidget->setDateTextFormat(QDate(2011,4,9),fertiledate);
ui->calendarWidget->setDateTextFormat(QDate(2011,4,12),unsafedate);
ui->calendarWidget->setDateTextFormat(QDate(2011,4,14),safedate);
}@regards
imrrk -
wrote on 14 Apr 2011, 07:08 last edited by
In dialog.cpp, you need to make the connections not on lines 14 and 15, but where you actually create the dialog, after line 57. There you have a reference to both the dialogs, so there you make the connection.
-
wrote on 14 Apr 2011, 07:39 last edited by
thanks andre ,I got it and its working fine,thanks a lot
-
wrote on 14 Apr 2011, 07:42 last edited by
hey andre as we have set the background colors for the cells can we set the backgroundimage for the cells...by using,
QTextcharformat date;
date.setbackgroundimageurl -
wrote on 14 Apr 2011, 07:43 last edited by
if this function exists, try it out.
have a look at the docs. -
wrote on 14 Apr 2011, 07:49 last edited by
[quote author="imrrk" date="1302766931"]hey andre as we have set the background colors for the cells can we set the backgroundimage for the cells...by using,
QTextcharformat date;
date.setbackgroundimageurl[/quote]
Could you make your variable naming any more confusing? I mean: you're working with calendars and dates, and you call a variable that represents a text format date?Anyway, QTextCharFormat (or its base class QTextFormat) does not have a method setBackgroundImageUrl. At least, not that I could find. But you can use a QBrush instead of a color, so that opens up some more options as brushes can be quite fancy... Check the documentation of QBrush.
-
wrote on 14 Apr 2011, 08:46 last edited by
ok andre and gerolf,thanks for ur information,I will check out the doc and come up with some possibilities..
regards
imrrk -
wrote on 19 Apr 2011, 04:53 last edited by
hello friends
i want to change the font color for dates of calendar according to holidays ...for that i have used Qtextformat...but dont know hw can i use it to change the color of the font
-
wrote on 19 Apr 2011, 05:43 last edited by
The last reply here I moved over from "this":http://developer.qt.nokia.com/forums/viewthread/5296/ topic.
imrrk/BorahAnshuman: please keep your topics in logical groups. It does not make sense to re-open a thread about how to format the dates in a QCalendarWidget in a topic that is about the relative performance of an application on device and in the simulator.
-
wrote on 19 Apr 2011, 05:48 last edited by
[quote author="BorahAnshuman" date="1303188835"]hello friends
i want to change the font color for dates of calendar according to holidays ...for that i have used Qtextformat...but dont know hw can i use it to change the color of the font[/quote]
If the background color of a cell is controlled by setBackground, then it did not occor to you to look into the documentation of setForeground?
[quote]
Sets the foreground brush to the specified brush. The foreground brush is mostly used to render text.See also foreground(), clearForeground(), and setBackground().
[/quote] -
wrote on 19 Apr 2011, 05:51 last edited by
Thanks for ur reply...its working..
73/119