写下面的代码的目的是点击窗体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重新编辑 ]