Access UI from another class
I am trying to create a class which should access a ui object via a connect function as
Ui is private but can't get it work:
I wrote the connect function in the secondary class as follows:
QObject::connect(objetA, SIGNAL(SendPlot()),MainWindow, SLOT(addPlot()) );
but can't figure out why it is not working.
AddPlot program is just adding a Widget to a HorizontalLayout
@jipe3001 First of all do this:
qDebug() << QObject::connect(objetA, SIGNAL(SendPlot()),MainWindow, SLOT(addPlot()) );
Does it print true? And can you see any warnings when you start your application?
Is the SendPlot() signal emitted somewhere?
MainWindowthe name of the class or of an object ?
MainWindow is the class of the QMainwindow managed by Ui
I just need to add A Qwidget to the Horizontal Layout included in MainWindow
from another class and get out how to access Ui (private) from external class.
I guess connect is the best way, any help appreciated
You can't connect an object to a class. Both end must be objects.
because you can not link a class name, you have to link an object or a pointer to the object.
So, a solution is to pass a pointer (or a reference) to the object who has the type name of your class (MainWindow) to the object who has the type name of the class from where you want to connect SIGNAL/SLOT (if you call the second UI object from inside the MainWindow object, it should be: "this"). Then, just use the pointer or the reference instead of the class name (i think you will probably connect them in the constructor of your class).