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. How To Have Access To A QWidget in MainWindow *ui Through Another Class
Forum Updated to NodeBB v4.3 + New Features

How To Have Access To A QWidget in MainWindow *ui Through Another Class

Scheduled Pinned Locked Moved Unsolved General and Desktop
23 Posts 4 Posters 4.7k 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.
  • L Laner107

    @jsulm Okay im messing around with it now, I do notice that all of the files in my mainwindow.ui are child objects of MainWindow when i create them? Does this not mean they are automatically in MainWindow class, or can i just promote the widget to my QWidget class, but then how can I actually access and change that QWidget from that class?

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #21

    @Laner107 said in How To Have Access To A QWidget in MainWindow *ui Through Another Class:

    are child objects of MainWindow when i create them? Does this not mean they are automatically in MainWindow class

    No, this simply means that main window is the parent.
    Look, if you add a QLabel to your MainWindow you will have a member variable of type QLabel, but QLabel class is not defined inside MainWindow. So, you can define your own widgets and add them as member variables to your MainWindow or any other widget:

    // In mywidget.h
    class MyWidget : public QWidget
    {...};
    
    // In mainwindow.h
    class MainWindow : public QMainWindow
    {
    private:
        MyWidget *myWidget;
    }
    

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    L 1 Reply Last reply
    1
    • jsulmJ jsulm

      @Laner107 said in How To Have Access To A QWidget in MainWindow *ui Through Another Class:

      are child objects of MainWindow when i create them? Does this not mean they are automatically in MainWindow class

      No, this simply means that main window is the parent.
      Look, if you add a QLabel to your MainWindow you will have a member variable of type QLabel, but QLabel class is not defined inside MainWindow. So, you can define your own widgets and add them as member variables to your MainWindow or any other widget:

      // In mywidget.h
      class MyWidget : public QWidget
      {...};
      
      // In mainwindow.h
      class MainWindow : public QMainWindow
      {
      private:
          MyWidget *myWidget;
      }
      
      L Offline
      L Offline
      Laner107
      wrote on last edited by
      #22

      @jsulm said in How To Have Access To A QWidget in MainWindow *ui Through Another Class:

      MainWindow you will have a member variable of type QLabel, but QLabel class is not defined inside Ma

      If I add a QLabel it shows up in the file u_mainwindow.h instead of mainwindow.h, its like the u_mainwindow is meant to setup the ui i guess, and also the object that i want to use is using an API so is called QCustomPlot *stockGraph, so to actually edit this object that is presented in the MainWindow UI i have to actually add new code in the QCustomPlot API file?

      jsulmJ 1 Reply Last reply
      0
      • L Laner107

        @jsulm said in How To Have Access To A QWidget in MainWindow *ui Through Another Class:

        MainWindow you will have a member variable of type QLabel, but QLabel class is not defined inside Ma

        If I add a QLabel it shows up in the file u_mainwindow.h instead of mainwindow.h, its like the u_mainwindow is meant to setup the ui i guess, and also the object that i want to use is using an API so is called QCustomPlot *stockGraph, so to actually edit this object that is presented in the MainWindow UI i have to actually add new code in the QCustomPlot API file?

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #23

        @Laner107 said in How To Have Access To A QWidget in MainWindow *ui Through Another Class:

        If I add a QLabel it shows up in the file u_mainwindow.h instead of mainwindow.h

        It's because you're using Qt Designer. The code I provided is just an example (without using Qt Designer).

        "so to actually edit this object that is presented in the MainWindow UI i have to actually add new code in the QCustomPlot API file?" - no, that would mean to rebuilt Qt modules from sources. What do you mean by "edit"? Change its state? For that you simply use its public API. Please explain better what you want to do.

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        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