写下面的代码的目的是点击窗体MainWindow上的按钮,弹出窗体loginform,并隐藏窗体MainWindow。然后点击loginform上的按钮,关闭窗体loginform并打开MainWindow。
但是运行之后报错。(我在MainWindow中定义了一个static的MainWindow类型的变量mwin,并在Mainwindow的构造函数中初始化。。。。后面的不写了,各位看下面的代码)
错误:undefined reference to `MainWindow::mwin'   ----------MainWindow.cpp
            undefined reference to `MainWindow::mwin'   ----------Loginform.cpp
            error: collect2: ld returned 1 exit status
class MainWindow : public QMainWindow {
    Q_OBJECT
public:    
static MainWindow *mwin;       MainWindow(QWidget *parent = 0);
    ~MainWindow();
//....................................
};
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "loginform.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    MainWindow::mwin = this;
}
void MainWindow::on_pushButton_clicked()
{
    this->setVisible(false);
    LoginForm *login = new LoginForm(0);
    login->setVisible(true);
}#include "loginform.h"
#include "ui_loginform.h"
#include "mainwindow.h"
LoginForm::LoginForm(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::LoginForm)
{
    ui->setupUi(this);
}
void LoginForm::on_pushButton_clicked()
{
    MainWindow::mwin->setVisible(true);
    this->close();
}[ 此帖被leegoo在2010-04-14 08:21重新编辑 ]