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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicsScene  (Прочитано 2934 раз)
StatuS74
Гость
« : Сентябрь 06, 2011, 07:13 »

подскажите в классе описал метод.. при выполнение метода когда уже начинает возвращать авлится программа.

Код:

 QGraphicsScene * test::paint_Graf( аргументы метода)
{
 QGraphicsScene * scene = new QGraphicsScene;
.......
.......
if((point_g1>tn1))
             {
     return scene;
             }
             else
             {
                 QMessageBox::warning(0,"Внимание",
                                          "значение темпиратуры меньше начальной...подождите немного"
                                          ,
                                           QMessageBox::Ok,QMessageBox::Ok);
                 return scene;
             }



}

по нажатию кнопки вызываю его

Код:
 QGraphicsScene * scene11 = new QGraphicsScene;
       QString failo = "datchic2.txt";
       scene11 = test::paint_Graf(аргументы метода);

      ui->graphicsView->setScene(scene11);
      ui->graphicsView->show();


« Последнее редактирование: Сентябрь 06, 2011, 07:36 от StatuS74 » Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Сентябрь 06, 2011, 15:38 »

какой ужас  Шокированный

во первых не понятно, это:
Код:
QGraphicsScene * scene11 = new QGraphicsScene; //здесь создается сцена
       QString failo = "datchic2.txt";
       scene11 = test::paint_Graf(аргументы метода); //меняете на новую сцену, причем старая остается висеть в куче неиспользованная
      ui->graphicsView->setScene(scene11);
как минимум надо
Код:
QGraphicsScene * scene11 = test::paint_Graf(аргументы метода);
ui->graphicsView->setScene(scene11);

во вторых
QGraphicsScene * test::paint_Graf( аргументы метода)
{
QGraphicsScene * scene = new QGraphicsScene;
if((point_g1<=tn1))
QMessageBox::warning(0,"Внимание","Значение температуры меньше начальной...подождите немного",QMessageBox::Ok,QMessageBox::Ok);
return scene;
}

в целом код ужасен, но пока не понятно где у вас вылетает программа. слишком мало иходных данных для анализа
Записан
jerdeks
Гость
« Ответ #2 : Сентябрь 13, 2011, 19:44 »

Код
C++ (Qt)
   QString failo = "datchic2.txt";
 

Надо так:

Код
C++ (Qt)
   QString epicfailo = "datchic2.txt";
 
« Последнее редактирование: Сентябрь 13, 2011, 19:48 от jerdeks » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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