[Interest] type casting 5 levels down no error but not proper

Andre Haupt andre at bitwigglers.org
Tue Apr 24 17:01:17 CEST 2012


On Tue, Apr 24, 2012 at 01:58:00PM +0200, Sujan Dasmahapatra wrote:
>  
> 
> I have my mainwindow which is QMainWindow the parent of all my other
> classes. I am type casting upwards from 5 levels down using
> reinterpret_cast, to access the mainwindow to display message using
> statusBar(), but when type casting it's not giving error but when
> accessing mainwindow->statusBar() it's crashing.
>  
> 
> please check the code snippet below:
>  
> 
> [code]
> 
> QWidget *wid  = reinterpret_cast<QWidget *>(parent());
> 
> CSheet *sheet = reinterpret_cast<CSheet *>(wid->parent());
> 
> QScrollBar *scrollBar = reinterpret_cast<QScrollBar *>(sheet->parent());
> 
> CTabWidget *tabWid = reinterpret_cast<CTabWidget
> *>(scrollBar->parent());
> 
> CDataPage  *dataPage = reinterpret_cast<CDataPage *>(tabWid->parent());
> 
> MainWindow *mainwin = reinterpret_cast<MainWindow
> *>(dataPage->parent());
> 
> mainwin->statusBar()->showMessage(tr("A new plot being added!!"),5000);
> //[I][SIZE=7]Here it is crashing[/SIZE][/I]
> 
> [/code]
> 
>  
> 
> please help me someone whats going wrong in this. Thanks a lot for any
> help. Sujan 

If you just want to show a message on the status bar, do not do this
whole bunch of casts at all.

Just keep a pointer to your main window somewhere.

regards,

Andre



More information about the Interest mailing list