gpt4 book ai didi

c++ - 在 QMainWindow 之间切换

转载 作者:太空宇宙 更新时间:2023-11-04 15:05:20 25 4
gpt4 key购买 nike

我有三个QMainWindowEntryWindowWindowAWindowBEntryWindow中有2个按钮,点击buttonA显示WindowA,退出EntryWindow,点击buttonB 显示 WindowB 并退出 EntryWindow

main.cpp中:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
Entry w;
w.show();
return a.exec();
}

entryWindow.cpp中:

void Entry::on_chooseABtn_clicked()
{
this->hide();
WindowA w;
w.show();
}

void Entry::on_chooseBBtn_clicked()
{
this->hide();
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
WindowB w;
w.show();
}

但这似乎行不通。单击按钮后,WindowAWindowB 就闪掉了。我应该如何修改代码?

最佳答案

您在堆栈上创建 WindowA 和 WindowB 类的实例:

WindowA w;

所以当方法返回时它们被删除,就在

w.show();

也许将这些窗口作为实例变量添加到 Entry 类中。

编辑:一些代码示例。在 .h 文件中:

class Entry : public QMainWindow {

//your stuff

private:

WindowA windowA;
WindowB windowB;

}

您可以像这样更改按钮点击处理程序:

void Entry::on_chooseABtn_clicked()
{
this->hide();
windowA.show();
}

关于c++ - 在 QMainWindow 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16710243/

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