Russian Qt Forum
Ноябрь 23, 2024, 06:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Waiting for RPC reply to 'destroyWidget'' call timed out  (Прочитано 1427 раз)
Archa4
Гость
« : Май 18, 2011, 14:15 »

Возникает такая ошибка в программе.
Полный текст:
Код:
Waiting for RPC reply to 'destroyWidget'' call timed out
Write error:  "Unknown error"
Sending RPC id failed for call of 'setSymbianSoftKeys'
C:\Documents and Settings\arbogdanovs\Calendar_forum_v2-build-simulator\debug\Calendar_forum_v2.exe exited with code 3

Возникает ошибка в достаточно странном месте:
У меня есть класс (MainWindow) из которого создаются 3 других класса(DataManager, Calendar, TaskMain).
Ошибка возникает после того, как в MainWindow я получаю сигнал, который посылает TaskMain (после нажатия кнопки Back в TaskMain).
Самое то, что я не могу понять - даже если в слоте в MainWindow не писать ничего, дебуггер все равно виснет.

Вот часть кода:
TaskMain:
Код:
 back = new QPushButton("Back");
 connect(this->back, SIGNAL(clicked()), this, SLOT(backToCalendar()));
void TaskMain::backToCalendar()
{
    emit showCalendar();
}

Код:
MainWindow:
MainWindow::MainWindow(QWidget *parent) :
    QWidget(parent)
{
    dataManager = new DataManager;
    calendar = new CustomCalendarWidget;
    layout = new QVBoxLayout(this);
    layout->addWidget(calendar);
    /*
    taskMain = new TaskMain(QDate::currentDate());
    layout->addWidget(taskMain);
    */
    connect(calendar, SIGNAL(clicked(QDate)), this, SLOT(openTaskMain(QDate)));
    //connect(calendar, SIGNAL(setHoursList()), this, SLOT(setCalendarHoursList()));
    //connect(taskMain->submit, SIGNAL(clicked()), this, SLOT)

}

void MainWindow::openTaskMain(QDate date)
{
    calendar->setParent(0);
    taskMain = new TaskMain(date);
    layout->addWidget(taskMain);
    connect (taskMain, SIGNAL(showCalendar()), this, SLOT(closeTaskMain()));
    connect (taskMain, SIGNAL(clearDate(QDate*)), dataManager, SLOT(clearTaskItem(QDate*)));
    connect (taskMain, SIGNAL(saveTaskItem(QDate*,TaskItem*)), dataManager, SLOT(addTaskItem(QDate*,TaskItem*)));
}

void MainWindow::closeTaskMain()
{
    layout->addWidget(calendar);
    calendar->hoursList = dataManager->hoursList;
    taskMain->setParent(0);
}

MainWindow::~MainWindow()
{

}

Custom Calendar:
Код:
CustomCalendarWidget::CustomCalendarWidget( QWidget *parent) :
    QCalendarWidget( parent )
{
    this->setFirstDayOfWeek(Qt::Monday);
    this->setGridVisible(true);
    hoursList = new QList<QPair<QDate*, int> >;
}

void CustomCalendarWidget::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
{
    //painter->setPen( Qt::black );
    //painter->drawText( rect, Qt::AlignCenter, tr("ASD") );

    if (this->monthShown()!=date.month())
        painter->setPen(Qt::gray);
    else
        if (date.dayOfWeek()==6 || date.dayOfWeek()==7)
            painter->setPen(Qt::red);
        else
            painter->setPen(Qt::black);
    /*
        int asd = this->selectedDate().weekNumber();
        QDate nado = this->selectedDate().addDays(-5);
    */
    QString hours = workHours(date);
    QString str;
    str.setNum(date.day());
    //painter->fillRect(rect, Qt::white);
    painter->drawText(rect, Qt::AlignTop, str);
    painter->drawLine(rect.topRight(), rect.bottomLeft());
    painter->drawText(rect, Qt::AlignBottom|Qt::AlignRight, hours);
}

QString CustomCalendarWidget::workHours(QDate date) const
{
    QString string("0");
    for(int i=0; i<hoursList->size(); i++)
    {
        if (hoursList->value(i).first==dateForCalendar)
            string.setNum(hoursList->value(i).second);
    }
    return string;
}

CustomCalendarWidget::~CustomCalendarWidget()
{
}

Прога виснет после того, как если вернуться из TaskMain нажимая кнопку Back, заного все клеточки в календаре написуются (все клетки пройдут через Virtual Paint Cell...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 21.