作成中のアプリケーションのメインウィンドウとして使用する QmainWindow クラスを継承しました。
作成した別のクラスへのポインターとして中央ウィジェットを設定しました。
//main window constructor
postEntryWidget = 0; // null pointer to another class that extends QWidget
dataEntryWidget = new Data_Entry_Widget; //extends QWidget
setCentralWidget(dataEntryWidget); //set the widget in the main window
ユーザーがアクションをクリックすると、中央のウィジェットが別のウィジェット クラスへの別のポインターに設定されます。
/*
*this is the implementation of the slot that would be connected to the QAction
*connected to the postEntryWidget slot
*/
if(!postEntryWidget)
postEntryWidget = new Post_Entry_Widget;
setCentralWidget(postEntryWidget);
/*
*this is the implementation of the slot that would be connected to the QAction
*connected to the dataEntryWidget slot
*/
if(!dataEntryWidget)
dataEntryWidget = new Post_Entry_Widget;
setCentralWidget(dataEntryWidget);
これは、ビューを前後に切り替えると壊れます。また、前のビューに null ポイントを追加すると、そのビューに戻るとデータが失われます。
/*
*this is the implementation of the slot that would be connected to the QAction
*connected to the postEntryWidget slot
*/
dataEntryWidget = 0; //set the previous widget to a null pointer but loses data
if(!postEntryWidget)
postEntryWidget = new Post_Entry_Widget;
setCentralWidget(postEntryWidget);
カスタムデータ構造を作成せずに2つのビュー間の状態を維持するにはどうすればよいですか、またはこれは悪い習慣です。私はphpとWeb開発に最も精通しているので、これが最善の方法であるかどうかはわかりません.
前もって感謝します