Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. 'extern' construction and undefined reference
Qt 6.11 is out! See what's new in the release blog

'extern' construction and undefined reference

Scheduled Pinned Locked Moved General and Desktop
13 Posts 5 Posters 15.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #4

    Hi all,

    I have been trying to use this "extern" variable for my project, but could not figure out the exact way of doing it. Here is what I have done,

    I have a "login" form where I want to assign QString value to a "global_variable". And then use this saved value in a second form "account".

    Code I wrote is,

    @//login.h
    extern QString global_variable //throws error that, storage space assigned

    //login.cpp, in a signal slot function
    QString global_variable = ui->lineEdit->text();

    //account.cpp
    #include "login.h"

    QString exe = staff_username; // written under function
    //: account::account(QWidget *parent) :
    //QMainWindow(parent),
    //ui(new Ui::staff)

    ui->label_name->setText(exe); @

    Can anybody help me with this please?

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #5

      Hi all,

      I have been trying to use this "extern" variable for my project, but could not figure out the exact way of doing it. Here is what I have done,

      I have a "login" form where I want to assign QString value to a "global_variable". And then use this saved value in a second form "account".

      Code I wrote is,

      @//login.h
      extern QString global_variable //throws error that, storage space assigned

      //login.cpp, in a signal slot function
      QString global_variable = ui->lineEdit->text();

      //account.cpp
      #include "login.h"

      QString exe = staff_username; // written under function
      //: account::account(QWidget *parent) :
      //QMainWindow(parent),
      //ui(new Ui::staff)

      ui->label_name->setText(exe); @

      Can anybody help me with this please?

      1 Reply Last reply
      0
      • A Offline
        A Offline
        andreyc
        wrote on last edited by
        #6

        If this construction is inside a function then it is not global variable.
        @
        //login.cpp, in a signal slot function
        QString global_variable = ui->lineEdit->text();
        @

        "Global variable":http://www.learncpp.com/cpp-tutorial/42-global-variables/ are declared outside of any functions.

        1 Reply Last reply
        0
        • A Offline
          A Offline
          andreyc
          wrote on last edited by
          #7

          If this construction is inside a function then it is not global variable.
          @
          //login.cpp, in a signal slot function
          QString global_variable = ui->lineEdit->text();
          @

          "Global variable":http://www.learncpp.com/cpp-tutorial/42-global-variables/ are declared outside of any functions.

          1 Reply Last reply
          0
          • ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #8

            Oh, yes. You were right.
            But in my case I need to assign a value in a signal slot function.
            How would you suggest me to go on this?

            1 Reply Last reply
            0
            • ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #9

              Oh, yes. You were right.
              But in my case I need to assign a value in a signal slot function.
              How would you suggest me to go on this?

              1 Reply Last reply
              0
              • A Offline
                A Offline
                andreyc
                wrote on last edited by
                #10

                You need to declare QString global_variable outside of slot function in login.cpp and assign it inside the function.
                login.cpp
                @
                ...
                QString global_variable;

                void slot_function()
                {
                global_variable = "whatever";
                }
                @

                PS: Using global variables is not good practice.
                I would suggest to rethink a design and use class member variables or pass it through signal/slot.

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  andreyc
                  wrote on last edited by
                  #11

                  You need to declare QString global_variable outside of slot function in login.cpp and assign it inside the function.
                  login.cpp
                  @
                  ...
                  QString global_variable;

                  void slot_function()
                  {
                  global_variable = "whatever";
                  }
                  @

                  PS: Using global variables is not good practice.
                  I would suggest to rethink a design and use class member variables or pass it through signal/slot.

                  1 Reply Last reply
                  0
                  • ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #12

                    Thanks a lot!!
                    I was stuck in this since hours.

                    It is working now..God bless!!

                    1 Reply Last reply
                    0
                    • ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #13

                      Thanks a lot!!
                      I was stuck in this since hours.

                      It is working now..God bless!!

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved