我正在努力实现的目标:
创建2个继承QVBoxLayout的类,只是为了用一系列不同的对象设置每个类。
例如为:
Class 1(继承QVBoxLayout),有QLabel显示约会和那些用this->addWidget(labels);
设置的标签
Class 2(继承QVBoxLayout),有QLineEdits(等等)来编辑约会,这些对象也设置为this->addWidget(lineedits);
是否有可能有一个QWidget类,然后通过调用this->setLayout(class1_object);
和this->setLayout(class2_object);
在这两个布局之间切换?
或者您如何建议在窗口小部件上交换活动对象(单击视图部件上的编辑按钮或编辑部件上的保存按钮)?
只需使用object->setShown(false);
?
答案 0 :(得分:1)
IMO,这里使用QTabWidget
更容易。
使用2个标签创建QTabWidget
。在Tab1上,放置标签。在Tab2上,进行编辑。调用Tab2就像“编辑约会”。现在,使用currentChanged()
插槽来捕获切换选项卡。
如果保存编辑应该很简单,您只需将编辑后的数据从编辑复制到标签,反之亦然。
如果保存需要更多,例如如果需要确认对话框,则可以允许用户更改回Tab1,直到满足某些条件:
void MainWindow::on_tabWidget_currentChanged(int index)
{
//if the user is trying to go back to Tab1 (where the labels are)...
if(index == 0)
{
//...and if user didn't accept something, we just return him to the current tab
//It's probably a good idea to tell him what went wrong, too :P
if(!userAcceptedSaveDialog())
ui.tabWidget.setCurrentIndex(1);
}
}