0

QMainWindowEntryWindowWindowA、の3 つがありWindowBます。には 2 つのボタンがあります。EntryWindowクリック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();
}

しかし、これはうまくいかないようです。ボタンをクリックした後、WindowAまたはWindowB単に点滅しました。コードをどのように変更すればよいですか?

4

2 に答える 2

3

ウィンドウをポインターとして作成します。そうしないと、範囲外になると自動的に削除されます。

this->hide();
WindowA* w = new WindowsA(this);
w->show();
于 2013-05-23T09:35:17.317 に答える