我继承了 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);
在视图之间来回切换时会中断。如果我在前面的视图中添加一个空点,当我回到那个视图时,我会丢失数据。
/*
*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);
如何在不创建自定义数据结构的情况下保持两个视图之间的状态,或者这是一种不好的做法。我最熟悉 php 和 web 开发,所以我不确定这是否是最好的方法。
提前致谢