Ich verwende Qt 5.5.1. Ich habe eine MainWindow
, die manuell mit dem Code erstellt wird. Es hat eine QListWidget
und QStackedWidget
. Außerdem habe ich 5 Widgets mit *.ui
Dateien in Form-Design. Das Problem ist, dass ich nicht weiß, wie Felder für Objekte in Formularen von MainWindow.cpp
festgelegt werden.Einstellen von UI-Objekten mit vielen Widgets
Hier sind die ersten Zeilen von pages.h:
#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//
//...//
Und in pages.cpp:
settings::settings(QWidget *parent) : QWidget(parent), ui(new Ui::settings)
{
ui->setupUi(this);
}
Und mainwindow.cpp:
MainWindow::MainWindow()
{
//code here//
settings::ui->firstAddedParamLabel->setVisible(true);
}
Also, wenn ich kompilieren, bekomme ich:
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)
Und es zeigt auf ui(new Ui::settings)
. Meine Frage ist, wie man UI Felder einstellt/erhält? kann ich nicht vollständig verstehen. Vielen Dank!
Was möchten Sie erreichen, indem Sie es öffentlich und statisch machen, vielleicht gibt es einen anderen Weg, um das gleiche zu erreichen – Apin
Ich konnte nicht private Mitglied Ui :: Einstellungen in MainWindow zum Beispiel verwenden. Also habe ich es öffentlich gemacht. Danach habe ich eine Fehlermeldung, die besagt, dass ich keine statischen Member Ui :: settings einstellen kann. –
Warum versuchen Sie, 'Ui :: settings' von 'MainWindow' zu manipulieren? – thuga