PDA

View Full Version : having some problems



Barvik
19th November 2008, 14:21
Could somebody help me, i have 2 classes, Calendar.cpp and Appointment.cpp
The Appointment class works like it should be able to make a new appointment.
When I click a menu in the calendar class, a new dialogue-window should appear that adds the appointment.
How should i connect what i write in the Appointment dialogue to the Calendar class as an appointment. I cant figure out how to get the text updated correctly between the 2 classes.

Kalender.cpp


#include <QtGui>
#include "kalender.h"
#include "avtale.h"

Kalender::Kalender()
{
createActions();
createMenus();
lagKalender();

//Layout delen

QWidget *centralWidget = new QWidget;

QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(qWidget);

QVBoxLayout *vinduet = new QVBoxLayout;
vinduet->addLayout(layout);
centralWidget->setLayout(vinduet);

setCentralWidget(centralWidget);
}

void Kalender::lagKalender()
{


qWidget = new QTableWidget(5, 7, this);

qWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("Monday"));
qWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("Tuesday"));
qWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("Wednesday"));
qWidget->setHorizontalHeaderItem(3, new QTableWidgetItem("Thursday"));
qWidget->setHorizontalHeaderItem(4, new QTableWidgetItem("Friday"));
qWidget->setHorizontalHeaderItem(5, new QTableWidgetItem("Saturday"));
qWidget->setHorizontalHeaderItem(6, new QTableWidgetItem("Sunday"));

qWidget->setVerticalHeaderItem(0, new QTableWidgetItem("Week 1"));
qWidget->setVerticalHeaderItem(1, new QTableWidgetItem("Week 2"));
qWidget->setVerticalHeaderItem(2, new QTableWidgetItem("Week 3"));
qWidget->setVerticalHeaderItem(3, new QTableWidgetItem("Week 4"));
qWidget->setVerticalHeaderItem(4, new QTableWidgetItem("Week 5"));

for (int i = 0; i < 31; i++) {
int column = i/7;
int row = i % 7;
QString s;
s.setNum (i+1);
qWidget->setItem(column, row, new QTableWidgetItem(s));
}
}
void Kalender::createActions()
{
newAction = new QAction(tr("&New"), this);
newAction->setIcon(QIcon(":/images/new.pwn"));
newAction->setShortcut(QKeySequence::New);
newAction->setStatusTip(tr("Create a new calendar"));
connect(newAction, SIGNAL(triggered()),
this, SLOT(close()));

openAction = new QAction(tr("&Open"), this);
openAction->setIcon(QIcon(":/images/open.pwn"));
openAction->setShortcut(QKeySequence::Open);
openAction->setStatusTip(tr("Open a calendar"));
connect(openAction, SIGNAL(triggered()),
this, SLOT(close()));

exitAction = new QAction(tr("E&xit"), this);
exitAction->setShortcut(tr("Ctrl+Q"));
exitAction->setStatusTip(tr("Exit the calendar"));
connect(exitAction, SIGNAL(triggered()),
this, SLOT(close()));

saveAction = new QAction(tr("&Save"), this);
saveAction->setShortcut(QKeySequence::Save);
saveAction->setStatusTip(tr("Save the calendar"));
connect(saveAction, SIGNAL(triggered()),
this, SLOT(close()));

saveAsAction = new QAction(tr("Save &As"), this);
saveAsAction->setStatusTip(tr("Save the calendar"));
connect(saveAsAction, SIGNAL(triggered()),
this, SLOT(close()));

cutAction = new QAction(tr("Cu&t"), this);
cutAction->setShortcut(QKeySequence::Cut);
cutAction->setStatusTip(tr("Cut out text"));
connect(cutAction, SIGNAL(triggered()),
this, SLOT(close()));

copyAction = new QAction(tr("&Copy"), this);
copyAction->setShortcut(QKeySequence::Copy);
copyAction->setStatusTip(tr("Copy selected text"));
connect(copyAction, SIGNAL(triggered()),
this, SLOT(close()));

pasteAction = new QAction(tr("&Paste"), this);
pasteAction->setShortcut(QKeySequence::Paste);
pasteAction->setStatusTip(tr("Paste text"));
connect(pasteAction, SIGNAL(triggered()),
this, SLOT(close()));

deleteAction = new QAction(tr("&Delete"), this);
deleteAction->setShortcut(QKeySequence::Delete);
deleteAction->setStatusTip(tr("Delete text"));
connect(deleteAction, SIGNAL(triggered()),
this, SLOT(close()));

lagAvtale = new QAction(tr("&Ny avtale"), this);
lagAvtale->setStatusTip("Lag en ny avtale");
connect(lagAvtale, SIGNAL(triggered()),
this, SLOT(leggTil()));

redigerAvtale = new QAction(tr("Rediger Avtale"), this);
redigerAvtale->setShortcut(tr("Ctrl+R"));
redigerAvtale->setStatusTip(tr("Rediger avtale"));
connect(redigerAvtale, SIGNAL(triggered()),
this, SLOT(close()));

}
void Kalender::createMenus()
{

fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(newAction);
fileMenu->addAction(openAction);
fileMenu->addAction(saveAction);
fileMenu->addAction(saveAsAction);
separatorAction = fileMenu->addSeparator();
fileMenu->addSeparator();
fileMenu->addAction(exitAction);

editMenu = menuBar()->addMenu(tr("&Edit"));
editMenu->addAction(cutAction);
editMenu->addAction(copyAction);
editMenu->addAction(pasteAction);
editMenu->addSeparator();
editMenu->addAction(deleteAction);

avtaleMenu = menuBar()->addMenu(tr("&Avtale"));
avtaleMenu->addAction(lagAvtale);
avtaleMenu->addAction(redigerAvtale);
}
void Kalender::leggTil()
{
if(!nyAvtale) {
nyAvtale = new nyAvtale();
connect(nyAvtale, SIGNAL(textChanged(const QString &)),
this, SLOT(textChanged(const QString &)));
}
nyAvtale->show();
nyAvtale->raise();
nyAvtale->activateWindow();

/*
QString text = nyAvtale->lineEdit->text();

qWidget->setItem(3, 3, new QTableWidgetItem(text));*/
}


Avtale.cpp


#include <QtGui>
#include "avtale.h"

Avtale::Avtale(QWidget *parent)
: QDialog(parent)
{
label = new QLabel(tr("Skriv inn avtale:"));
lineEdit = new QLineEdit;
label->setBuddy(lineEdit);

leggTilAvtale = new QPushButton(tr("Legg til avtale"));
leggTilAvtale->setEnabled(false);

closeButton = new QPushButton(tr("Close"));

label2 = new QLabel(tr(""));

connect(lineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(enableButton(const QString &)));
connect(leggTilAvtale, SIGNAL(clicked()),
this, SLOT(updateButton()));
connect(closeButton, SIGNAL(clicked()),
this, SLOT(close()));

QHBoxLayout *topLeftLayout = new QHBoxLayout;
topLeftLayout->addWidget(label);
topLeftLayout->addWidget(lineEdit);

QVBoxLayout *leftLayout = new QVBoxLayout;
leftLayout->addLayout(topLeftLayout);
leftLayout->addWidget(label2);

QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(leggTilAvtale);
rightLayout->addWidget(closeButton);
rightLayout->addStretch();

QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(leftLayout);
mainLayout->addLayout(rightLayout);
setLayout(mainLayout);

setWindowTitle(tr("Find"));
setFixedHeight(sizeHint().height());
}
void Avtale::updateButton()
{
QString text = lineEdit->text();

label2->setText(text);
lineEdit->clear();
}
void Avtale::enableButton(const QString &text)
{
leggTilAvtale->setEnabled(!text.isEmpty());
}