我这里有一个很奇怪的问题。将项目设置为表格时,我的程序为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( ... )中的newSlot()时,出现了分段错误。我在某个导致这个烂摊子的地方犯了一些愚蠢的错误吗? 'Coz,我在其他地方使用完全相同的代码,没有任何问题。

最佳答案

您必须指定列数:

table->setColumnCount( 2 );


去做

table->setItem( table->rowCount() - 1, 0, new QTableWidgetItem( "something" ) );
...

关于c++ - QTableWidget::setItem上的Qt4 SegmentationFault,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15682001/

10-08 22:38