0

プログラムでQTableViewを使用してみました。開始した別のテストプロジェクトでモデルに発生したすべてのバグをすでに修正しました。

ここで、モデルとQTableViewをメインプロジェクトに挿入しようとしましたが、他のプロジェクトとは対照的に、QTableViewは0.5秒間開いてから、すぐに閉じます。ただし、同じコードがテストプロジェクトでうまく機能していました。

これはテストプロジェクトの私のコードです:

#include <QApplication>
#include <QTableView>
#include "start.h"
#include "mymodel.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTableView tableView;
    MyModel myModel(0);
    tableView.setModel(&myModel);
    tableView.setSelectionBehavior(QAbstractItemView::SelectRows);
    tableView.show();
    //Start w;
    //w.show();

    return a.exec();
}

そして、これはメインプロジェクトの関連コードです:

void Startseite::on_ButtonOK_clicked()
{
    switch (ui->menuLeiste->currentIndex()) {

    case 0:
    {
        QTableView tableview;
        Model myModel(0);
        tableview.setModel(&myModel);
        tableview.setSelectionBehavior(QAbstractItemView::SelectRows);
        tableview.show();
        break;
    }

    case 1:
    {
        // other functions...
    }
}
}

モデルはQAbstractTableModelです。

TableViewが閉じる理由を誰かが知っていますか?

ありがとう!

4

1 に答える 1

1

モデルを作成してヒープ上に表示する必要があります。そうしないと、最後にスコープから外れてon_ButtonOK_clicked破棄されます。

main両方を作成し、プログラムの最後にのみ破棄されるため、テストプロジェクトで機能します。

于 2012-08-31T08:23:22.423 に答える