私はQt 5.5.1を使用しています。私はコードで手動で作成されたMainWindow
を持っています。それはQListWidget
とQStackedWidget
を持っています。また、フォームデザインで作られた*.ui
ファイルを持つ5つのウィジェットを持っています。問題はフォームのオブジェクトのフィールドをMainWindow.cpp
に設定する方法がわからないことです。 多くのウィジェットを持つUIオブジェクトを設定する
#include <QWidget>
namespace Ui
{
class settings;
class textCreating;
class databasework;
class AutoMode;
class ManualMode;
}
class settings : public QWidget
{
Q_OBJECT
public:
settings(QWidget *parent = 0);
~settings();
static Ui::settings *ui; //It was private and not static at first
private:
};
//other classes//
//...//
そしてpages.cppで
:settings::settings(QWidget *parent) : QWidget(parent), ui(new Ui::settings)
{
ui->setupUi(this);
}
そしてMainWindow.cpp:ここ
はpages.hの最初の行ですMainWindow::MainWindow()
{
//code here//
settings::ui->firstAddedParamLabel->setVisible(true);
}
だから、ときに私コンパイル、私は得る:
error: 'Ui::settings* settings::ui' is a static data member; it can only be initialized at its definition settings::settings(QWidget *parent) : QWidget(parent), ui(new Ui::settings)
ui(new Ui::settings)
を指します。私の質問は、UIフィールドを設定/取得する方法ですか?私は完全に理解できません。ありがとう!
これを公開して静的にしたいのですが、同じことを達成する別の方法があるかもしれません。 – Apin
たとえば、MainWindowでプライベートメンバーUi :: settingsを使用できませんでした。だから公開しました。その後、私は静的メンバーUi :: settingsを設定することができないというエラーが表示されます。 –
なぜ 'MainWindow'から' Ui :: settings'を操作しようとしていますか? – thuga