0

我要完成的工作:

创建 2 个继承 QVBoxLayout 的类,以便为每个类设置一系列不同的对象。

例如:第 1 类(继承 QVBoxLayout),具有 QLabels 来显示约会,并且这些标签设置为this->addWidget(labels);

类 2(继承 QVBoxLayout),具有 QLineEdits(等等)来编辑约会,并且这些对象也设置为this->addWidget(lineedits);

this->setLayout(class1_object);是否可以有一个 QWidget 类,然后通过调用和在这两种布局之间切换this->setLayout(class2_object);

或者您如何建议交换小部件上的活动对象(单击视图部分上的编辑按钮或编辑部分上的保存按钮时)?

只需使用object->setShown(false);?

4

1 回答 1

1

IMO,在这里更容易使用QTabWidgetQTabWidget用 2 个标签制作一个。在 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);        
    }
}
于 2012-07-31T13:54:34.137 回答