我要完成的工作:
创建2个继承QVBoxLayout的类,只是为每个类设置一系列不同的对象。
例如。:
第1类(继承QVBoxLayout)具有QLabel显示约会,并且这些标签使用this->addWidget(labels);
设置
类2(继承QVBoxLayout)具有QLineEdits(以此类推)来编辑约会,并且这些对象也使用this->addWidget(lineedits);
设置
是否可以有一个QWidget类,然后通过调用this->setLayout(class1_object);
和this->setLayout(class2_object);
在这两种布局之间切换?
或您如何建议在小部件上交换活动对象(单击视图部分上的编辑按钮或编辑部分上的保存按钮时)?
只需使用object->setShown(false);
?
最佳答案
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);
}
}
关于c++ - 是否可以继承QVBoxLayout并将其设置为QWidget中的布局?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11741356/