Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Liberare risorse in chiusura QMainWindow

Liberare risorse in chiusura QMainWindow

Scheduled Pinned Locked Moved Solved Italian
5 Posts 2 Posters 1.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fermatqt
    wrote on 16 Jan 2019, 14:06 last edited by
    #1

    ciao!

    quando si crea una finestra usando il file di layout (il file .ui per intenderci) viene sempre creato un distruttore con questo dentro:

    DialogAdd::~DialogAdd() {
        delete ui;
    }
    

    da quanto ho capito serve appunto per liberare le risorse occupate dalla finestra.
    io ho creato una QMainWindow senza file .ui, e mi chiedevo come dovrei liberare le risorse.
    avevo provato banalmente con questo, ma va in crash quando chiudo il programma:

    MainWindow::~MainWindow() {
        delete this;
    }
    
    1 Reply Last reply
    0
    • M Offline
      M Offline
      mrdebug
      wrote on 16 Jan 2019, 18:08 last edited by
      #2

      Il fatto di allocare / liberare memoria prescinde dal fatto che si utilizzi il file .ui per gestire la grafica.
      Se crei con new devi eseguire delete, se invece non usi il new alla chiusura del dialog la memoria si libera.
      Se hai dubbi puoi compilare il modo debug ed usare valgrid per trovare eventuali memory leak.

      Need programmers to hire?
      www.labcsp.com
      www.denisgottardello.it
      GMT+1
      Skype: mrdebug

      1 Reply Last reply
      0
      • F Offline
        F Offline
        fermatqt
        wrote on 17 Jan 2019, 10:11 last edited by
        #3

        ciao!

        si si, questo lo so.
        mettiamola cosi: il dubbio รจ se devo farlo per tutti gli oggetti, o se per qualche oggetto va a cascata.
        ad esempio:

        exitAction = new QAction(tr("E&xit"), this);
        addSyncAction = new QAction(tr("&Aggiungi sync"), this);
        refreshAction = new QAction(tr("&Rinfresca sync"), this);
        aboutAction = new QAction(tr("&About"), this);
        tbl = new QTableWidget();
        resEdit = new QPlainTextEdit;
        
        

        ho messo tutti gli oggetti su cui uso il new nella finestra.
        devo fare la delete per tutti??

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mrdebug
          wrote on 17 Jan 2019, 10:18 last edited by
          #4

          Ciao, no, se lasci li crei in riferimento al dialog "this", una volta che killi il dialog esso uccide tutti i componenti a lui legati, quindi non serve che lo fai te.
          E' un sistema utilizzato anche in Delphi e Freepascal.

          Need programmers to hire?
          www.labcsp.com
          www.denisgottardello.it
          GMT+1
          Skype: mrdebug

          F 1 Reply Last reply 17 Jan 2019, 10:36
          0
          • M mrdebug
            17 Jan 2019, 10:18

            Ciao, no, se lasci li crei in riferimento al dialog "this", una volta che killi il dialog esso uccide tutti i componenti a lui legati, quindi non serve che lo fai te.
            E' un sistema utilizzato anche in Delphi e Freepascal.

            F Offline
            F Offline
            fermatqt
            wrote on 17 Jan 2019, 10:36 last edited by
            #5

            @mrdebug said in Liberare risorse in chiusura QMainWindow:

            Ciao, no, se lasci li crei in riferimento al dialog "this", una volta che killi il dialog esso uccide tutti i componenti a lui legati, quindi non serve che lo fai te.
            E' un sistema utilizzato anche in Delphi e Freepascal.

            perfetto grazie!!

            1 Reply Last reply
            0

            2/5

            16 Jan 2019, 18:08

            • Login

            • Login or register to search.
            2 out of 5
            • First post
              2/5
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved