0

我在这里有一个非常奇怪的问题。我的程序是SegmentationFault当我将项目设置为表格时。这是我的代码。

标题:

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

    private:
        QTableWidget *table;

    private slots:
        void newSlot();
}

cp文件:

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( ... )in 时newSlot(),我得到一个分段错误。我是不是在某个地方犯了一些愚蠢的错误而导致了这个混乱?'因为我在其他地方使用了完全相同的代码,没有任何问题。

4

1 回答 1

1

您必须指定列数:

table->setColumnCount( 2 );

去做

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