QStringlistを静的変数に設定し、問題を初期化

784 ワード

QTを初めて学び、今日、いくつかの持参したQTタイプを静的以降(例えばQStringlist)と宣言し、初期化できない場合を発見しました.
静的変数を初期化せずにそのまま使用すると、コンパイラからLINKエラーが表示されます.つまり、解析できない外部記号を提示します.
では、このような静的変数をどのように使うかというと、実はQT creatorでは、cppで一度宣言すればいいので、初期化しなくてもいいです.例:
class checkall : public QWidget
{  //    .h
    Q_OBJECT

public:
    explicit checkall(QWidget *parent = 0);
    ~checkall();
    static QStringListModel m_listmodel;

private:
    Ui::checkall *ui;
};

mainwindowで使用:
QStringListModel checkall::m_listmodel; //    
void MainWindow::checkalltable(){
    checkall::m_listmodel.setStringList(tablelist);  //    
    ca = new checkall(NULL);
    ca->show();
}