0

FirstPage という名前のクラスがあり、メインウィンドウに FirstPage のオブジェクトがあります! 今、メインウィンドウの FirstPage の「Ui」にアクセスしたいのですが、できません!

    namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private slots:

private:
    FirstPage* FrstPg;
};

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    FrstPg = new FirstPage (this);
    connect (FrstPg->ui->pushButton,SIGNAL(clicked(),FrstPg,SLOT(show());//Error ERRor
}

私は何をすべきか ?!

4

2 に答える 2

0

名前空間でMainWindowクラスを前方宣言したのに、宣言がこの名前空間にないのはなぜですか? 1 つはグローバル名前空間に、もう 1 つは名前空間に、 2 つの異なるクラスを持つことになります。あなたがやろうとしていることは次のことだと思います:UiMainWindowMainWindowUi

namespace Ui {

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private slots:

private:
    FirstPage* FrstPg;
};

}

cpp ファイルについても同様です。

namespace Ui {

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    FrstPg = new FirstPage (this);
    connect (FrstPg->ui->pushButton,SIGNAL(clicked(),FrstPg,SLOT(show());//Error ERRor
}

}

あなたのエラーに関して、MainWindowクラスではなくクラスで接続しようとするのはなぜFirstPageですか? あなたのシグナルとスロットの両方がこのクラスにあります。ここで接続する理由がわかりません。見逃したものはありますか?

于 2013-06-16T13:15:59.957 に答える