Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: StatuS74 от Сентябрь 06, 2011, 07:13



Название: QGraphicsScene
Отправлено: 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();




Название: Re: QGraphicsScene
Отправлено: Fregloin от Сентябрь 06, 2011, 15:38
какой ужас  :o

во первых не понятно, это:
Код:
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;
}

в целом код ужасен, но пока не понятно где у вас вылетает программа. слишком мало иходных данных для анализа


Название: Re: QGraphicsScene
Отправлено: jerdeks от Сентябрь 13, 2011, 19:44
Код
C++ (Qt)
   QString failo = "datchic2.txt";
 

Надо так:

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