C++ 对Qt中静态声明变量的未定义引用?

C++ 对Qt中静态声明变量的未定义引用?,c++,qt,C++,Qt,我试图使用一个静态变量,这样我就可以调用它并从多个类作用域进行设置 以下是我的定义: class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); static QString webSite; private slots: void on_actionNew_Site_trigger

我试图使用一个静态变量,这样我就可以调用它并从多个类作用域进行设置

以下是我的定义:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    static QString webSite;

private slots:
     void on_actionNew_Site_triggered();
}
这里是我设置的位置:

void MainWindow::on_actionNew_Site_triggered()
{
    webSite = QFileDialog::getExistingDirectory(this,tr("Choose Directory"),"");
}
我得到这个错误:
错误:未定义对“MainWindow::webSite”的引用。


我尝试了一些变化,但没有任何效果

仅将
静态
变量声明为类的成员是不够的,还需要定义它。为此,请将其放入您的cpp文件中:

QString MainWindow::webSite;

请注意定义中没有
静态
。这一行输入后,链接器将在哪个对象文件中放置
静态变量的定义。

仅将
静态变量声明为类的成员是不够的,还需要定义它。为此,请将其放入您的cpp文件中:

QString MainWindow::webSite;

请注意定义中没有
静态
。这一行输入后,链接器将在哪个对象文件中放入该
静态
变量的定义。

这给了我
错误:限定名称“MainWindow::webSite”QString MainWindow::webSite的使用无效@JVE999它不应该给你那个错误。检查类声明后是否有分号(您的帖子中没有),并确保CPP文件包含标题。下面是关于ideone的declare/define概念的简要介绍。这篇文章解释了最近的一个错误:这是因为我放置了
QString MainWindow::webSite在函数中。修复后,一切都正常了。@JVE999您没有将定义放在函数中,是吗?是的,我就是这么做的。这给了我
错误:限定名称“MainWindow::webSite”QString MainWindow::webSite的使用无效@JVE999它不应该给你那个错误。检查类声明后是否有分号(您的帖子中没有),并确保CPP文件包含标题。下面是关于ideone的declare/define概念的简要介绍。这篇文章解释了最近的一个错误:这是因为我放置了
QString MainWindow::webSite在函数中。修复后,一切都正常了。@JVE999您没有将定义放入函数中,是吗?是的,我就是这么做的。