0

ここで非常に奇妙な問題があります。私のプログラムはSegmentationFault、アイテムをテーブルに設定するときです。これが私のコードです。

ヘッダ:

class Program : public QMainWindow {
    Q_OBJECT
    public:
        Program();

    private:
        QTableWidget *table;

    private slots:
        void newSlot();
}

Cpp ファイル:

Program::Program() : QMainWindow() {
    ....
    ....
    ....
    ....
    table = new QTableWidget();
    table->setRowCount( 0 );
    table->setColumnCount( 2 );
    ....
    ....
    ....
}

void Program::newSlot() {
    ....
    ....
    ....
    table->insertRow( table->rowCount() );
    table->setItem( table->rowCount() - 1, 0, new QTableWidgetItem( "something" ) );
    table->setItem( table->rowCount() - 1, 1, new QTableWidgetItem( "something" ) );
    ....
    ....
    ....
}

問題は、プログラムがtable->setItem( ... )innewSlot()に到達すると、セグメンテーション違反が発生することです。この混乱を引き起こしているどこかで愚かな間違いを犯しましたか? 'Coz 私はまったく同じコードを他の場所で問題なく使用しました。

4

1 に答える 1

1

列数を指定する必要があります:

table->setColumnCount( 2 );

する

table->setItem( table->rowCount() - 1, 0, new QTableWidgetItem( "something" ) );
...
于 2013-03-28T12:59:04.117 に答える