
Originally Posted by
spirit
It's an interesting interpretation, but I would make this in other way: make this object as a singleton
{
Q_OBJECT
public:
static Global *instance();
void send_name
(const QString &color_name
);
...
Q_SIGNALS:
void send_color
(const QString &color_name
);
private:
Q_DISABLE_COPY(Global);
};
#define myGlobal Global::instance() //shortcut
class Global: public QObject
{
Q_OBJECT
public:
static Global *instance();
void send_name(const QString &color_name);
...
Q_SIGNALS:
void send_color(const QString &color_name);
private:
Q_DISABLE_COPY(Global);
};
#define myGlobal Global::instance() //shortcut
To copy to clipboard, switch view to plain text mode
Then
...
connect(myGlobal,
SIGNAL(send_color
(const QString &)),
SLOT(applyColor
(const QString &)));
...
myGlobal->send_name("lightgray");
...
connect(myGlobal, SIGNAL(send_color(const QString &)), SLOT(applyColor(const QString &)));
...
myGlobal->send_name("lightgray");
To copy to clipboard, switch view to plain text mode
Thanks for your reply but I am not 100% sure that I understand your code. I want to call a Global static function from my MainWindow class, let's say
Global::set_new_color();
Global::set_new_color();
To copy to clipboard, switch view to plain text mode
and then, from within set_new_color I want to send a message back to mainwindow getting the color_name. From your code I assume that the send_name function then emits the send_color signal? If I use
Q_EMIT send_color(color_name);
Q_EMIT send_color(color_name);
To copy to clipboard, switch view to plain text mode
it doesn't let me emit it without an object... And I cannot create a new Global instance, because, as far as I understood from your code, Q_DISABLE_COPY avoids me from doing so...
If you want, I will provide you with example files.
Bookmarks