Important: Please read the Qt Code of Conduct -

Non-static data member warnings [SOLVED]

  • hello,

    I'm running into an abundant amount of non-static warnings for the way I'm setting up my layouts and buttons. The Project still works fine warnings and all.

    class Calibration : public QObject
        explicit Calibration(QObject *parent = 0);
        QHBoxLayout *MainLayout = new QHBoxLayout;
        QTableWidget *table = new QTableWidget;
        QHBoxLayout *TableLayout = new QHBoxLayout;
        QVBoxLayout *buttonlayout= new QVBoxLayout;
        QPushButton *CalPA = new QPushButton("Save Cal");
        QPushButton *GetPA = new QPushButton("Get Cal");
        QPushButton *SaveFile = new QPushButton("Save to File");
        QPushButton *GetFile = new QPushButton("Recall File");
        QStringList m2_TableHeader;
    public slots:

    if I change everything to

     QHBoxLayout *MainLayout;
        QTableWidget *table;
        QHBoxLayout *TableLayout;
        QVBoxLayout *buttonlayout;
        QPushButton *CalPA;
        QPushButton *GetPA;
        QPushButton *SaveFile;
        QPushButton *GetFile ;

    this makes the warnings go away but the program crashes. I know the issue is I'm declaring them publicly but I need to use them in a separate class so I don't think I can do so while declaring them privately. Should I be concerned, what should I change to fix this?

  • Lifetime Qt Champion


    That's because you're trying to do in-class initialization without C++11 activated. Since you don't seem to use C++11 you must move them in the constructor.

  • If I move them in the constructor they become static and I can't use them in my other class. The issue with that is I declare the buttons public in the header and then lay them out and show them In a separate class constructor(to make the code a little more readable). Would it be in bad taste just to leave it the way it is even if it works? Do you know of a solution where I can declare them in one constructor and use them in a completely different constructor?

  • I solved my issue. Here is the Code:

    .h file

        QVBoxLayout *buttonlayout;
        QPushButton *CalPA;
        QPushButton *GetPA;
        QPushButton *SaveFile;
        QPushButton *GetFile;

    .ccp file

    buttonlayout= new QVBoxLayout;
        CalPA = new QPushButton("Save Cal");
        GetPA = new QPushButton("Get Cal");
        SaveFile = new QPushButton("Save to File");
        GetFile = new QPushButton("Recall File");

    Works, no warnings no crashes.

  • Lifetime Qt Champion

    Something sounds fishy: why are you trying to access these members from other widgets ?

  • What I actually wanted was to create and populate a tab in a UI in a separate class. then connect those buttons and what not with code in the MainWindow class. But I actually decided to move most of the initialization back over to the Mainwindow, because of issues with it correctly updating information.

  • Lifetime Qt Champion

    @koahnig double check your settings, the mailing option should be there to configure it.

  • @SGaist
    Apparently landed in the wrong place.
    Anyway, I am typically simply checking stuff with the Alarm bell symbol in the top row.
    All mailings do not help at all, because for sure I am not checking those or only occassionally at most.

  • Lifetime Qt Champion

    The notifications bell doesn't seem to always return the data corresponding to the number it shows

Log in to reply