Консультация № 160357
13.02.2009, 06:49
0.00 руб.
0 3 1
Уважаемые эксперты!
Похоже, заработался, но... При компилировании программы выдаётся warning: "TMainForm.cpp: In member function ‘void TMainForm::ProgrammeBreakSlot()’: TMainForm.cpp:919: предупреждение: переполнение при неявном преобразовании константы". Можно ли от него как-нибудь избавиться?
Фрагмент кода - в приложении
Компилятор g++ 4.1, библиотека Qt 4.2

Приложение:
void TMainForm::ProgrammeBreakSlot()
{
if(pWorkTimer->isActive()) pWorkTimer->stop(); // Останавливаем рабочий таймер

if(!pBreakTimer->isActive())
{
iSeconds = pBreakBox->value() * 60;
iSecondsPassed = iSeconds;
pBreakTimer->start(1000); // Запускаем таймер перерыва
pTrayIcon->setToolTip(tr("0 % of the break time is passed"));
}
else
{
short nAnswer = QMessageBox::question(this, "QEde v. 1.0", // Показываем сообщение с вопросом
tr("Timer is just running.\nRestart?"),
QMessageBox::Yes,
QMessageBox::No);

switch(nAnswer)
{
case QMessageBox::Yes: // Если выбрано "да", чего-то делаем
{
pBreakTimer->stop();
iSeconds = pBreakBox->value() * 60;
iSecondsPassed = iSeconds;
pBreakTimer->start(1000);
pTrayIcon->setToolTip(tr("0 % of the break time is passed"));
break;
}
// Если выбрано "нет", больше ничего не делаем, выходим
case QMessageBox::No: return; // Эта строка вызывает warning
}
}

if(pImageRadioButton->isChecked())
{
ShowImage();
}
}

Обсуждение

давно
Академик
20764
1861
13.02.2009, 12:50
общий
это ответ
Здравствуйте, Dr_Andrew!
Компилятор предупреждает не зря: QMessageBox::No = 0x00010000 и в short действительно не помещается

Вообще объявлять простую переменную short это даже не экономия - остаток слова всё равно использован не будет.
давно
Старший Модератор
17042
808
14.02.2009, 05:52
общий
Привык просто, что в Qt 3.x сам назначаешь значения кнопкам: "да" == 0, "нет" == 1...
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
давно
Старший Модератор
17042
808
14.02.2009, 06:05
общий
Цитата: Хватов Сергей
Вообще объявлять простую переменную short это даже не экономия - остаток слова всё равно использован не будет.


Да вообще-то, причём, помнится, кто-то мне это уже говорил...
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Форма ответа