gpt4 book ai didi

c++ - 是否可以继承QVBoxLayout并在QWidget中设置为layout?

转载 作者:行者123 更新时间:2023-11-28 08:00:00 24 4
gpt4 key购买 nike

我要实现的目标:

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

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

类 2(继承 QVBoxLayout),有 QLineEdits(等等)来编辑约会,这些对象也用 this->addWidget(lineedits);

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

或者您如何建议在小部件上交换事件对象(当单击 View 部分上的编辑按钮或编辑部分上的保存按钮时)?

只需使用 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中设置为layout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11741356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com