我尝试使用静态变量,因此我可以调用它并从多个类范围设置它。
这是我的定义:
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"),"");
}
我收到此错误:error: undefined reference to 'MainWindow::webSite'
我尝试了一些变化,但没有任何表现可行。
答案 0 :(得分:6)
将static
变量声明为类的成员是不够的,您还需要定义它。为此,请将其放入cpp文件中:
QString MainWindow::webSite;
请注意定义中缺少static
。一旦该行进入,链接器将在哪个目标文件中放置该static
变量的定义。