Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C++]Problema Chiamata metodo

    Buonasera ho un problema apparentemente banale a cui non riesco a trovare soluzione; (Utilizzo come ide il QtSDK che ho scaricato dal sito qtsoftware.com) il problema é questo:

    Ho due classi in due file diversi, vorrei semplicemente chiamare un metodo della classe B (la seconda) attraverso la pressione di un bottone della classe A (la prima); posto una piccola porzione di codice delle 2 classi:
    P.S. l'header (.h) e il sorgente (.cpp) sono in file diversi
    Classe ricerca:
    codice:
    #ifndef RICERCA_H
    #define RICERCA_H
    #include <mainwindow.h>
    
     class Ricerca : public QWidget {
         Q_OBJECT
    
     MainWindow Lav;
    
     public:
         Ricerca();
    
     private slots:
        void avviaRic();
     private:
         QPushButton *cerca;
    
     };//Fine Header
    
    #include <QtGui>
    #include "ricerca.h"
    #include "mainwindow.h"
    
    Ricerca::Ricerca() {
    cerca = new QPushButton(tr("Avvia"),this);
    cerca->setFixedSize(50,20);
    connect(cerca,SIGNAL(clicked()),this,SLOT(avviaRic()));
    }
    void Ricerca::avviaRic() {
        Lav.cambiaTool(2);
    }
    Classe MainWindow:
    codice:
    class MainWindow : public QMainWindow {
         Q_OBJECT
    
     public:
         MainWindow();
     private:
     QToolBar *toolBar;
     public slots:
         void cambiaTool(int k);
    };//Fine Header
    
    MainWindow::MainWindow() {
        toolBar = new QToolBar(this);
        addToolBar(toolBar);
    }
    
    void MainWindow::cambiaTool(int k) {
      if (k==0) toolBar.setVisible(false);
    }
    e infine il main:
    codice:
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        return a.exec();
    }
    Ora queste sono solo due classi (da cui ho tolto praticamente tutto!!) del mio progettino, tutto funzionava a meraviglia e la GUI veniva compilata e lanciata con tutte i suoi Widget, inserendo il codice che ho postato sopra (ho dichiarato solo l'oggetto MainWindow per poter chiamare un metodo contenuto in quella classe) se compilo non mi viene restituito nessun errore nel codice, ma la GUI non compare piu e dopo una 30ina di secndi nel report di compilazione compare questo messaggio "Interfaccia.exe exited with code -1073741819"

    Come Procedo??

    Grazie mille

  2. #2
    Ragazzi nessuna idea? E' davvero cosi complicato?? Eppure (come mi é stato consigliato qui) ho scaricato un manuale di c++ e al paragrafo inerente le chiamate a metodi viene spiegato che per chiamare un metodo di un altra classe é sufficiente dichiararla nella classe che andrį a chiamare detto metodo. Potete dirmi quali errori ho fatto nel pezzo di codice che ho postato??

    Grazie a chi risponderį...

  3. #3

  4. #4
    Originariamente inviato da Lorenzo1979
    al paragrafo inerente le chiamate a metodi viene spiegato che per chiamare un metodo di un altra classe é sufficiente dichiararla nella classe che andrį a chiamare detto metodo.
    falso (ad esempio, se č non public...)

  5. #5
    Mac hai senza dubbio ragione, ma il mio metodo é public e il mio manualino é per principianti quindi credo si limiti ad esporre i casi base.

    In ogni caso ho fatto il debug e questo é l'output che ottengo (ve lo posto poiché non so minimamente cosa significhi):
    codice:
    Level     Function     File                                             Line
    
    0          strchr         C:\\Windows\\System32\tdll.dll        0
    1          ??                                                                0
    é male???

    Ma puó anche essere colpa di questo vomito di framework e questo vomito di IDE??

    Grazie a chi mi dedicherį il proprio tempo

  6. #6
    Speriamo risolviate...

  7. #7
    Possibile che nessuno abbia ancora risolto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.