QStringlistを静的変数に設定し、問題を初期化
QTを初めて学び、今日、いくつかの持参したQTタイプを静的以降(例えばQStringlist)と宣言し、初期化できない場合を発見しました.
静的変数を初期化せずにそのまま使用すると、コンパイラからLINKエラーが表示されます.つまり、解析できない外部記号を提示します.
では、このような静的変数をどのように使うかというと、実はQT creatorでは、cppで一度宣言すればいいので、初期化しなくてもいいです.例:
mainwindowで使用:
静的変数を初期化せずにそのまま使用すると、コンパイラから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();
}