How to Develop a Calendar Widget.
-
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?
-
[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]
-
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();
}
@ -
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 -
[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.
-
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
-
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.
-
[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] -
Thanks for ur reply...its working..