scheiss signal slot
scheiss signal slot
dieses system regt mich eig. voll auf.
hat jemand lust mir die vorteile davon zu nennen, damit ich nicht ganz so deprimiert bin =(.
mein problem:
ich will mit einem klick auf einen button, eine funktion aufrufen.
und zwar soll diese funktion nicht teil einer klasse sein!
hat jemand lust mir die vorteile davon zu nennen, damit ich nicht ganz so deprimiert bin =(.
mein problem:
ich will mit einem klick auf einen button, eine funktion aufrufen.
und zwar soll diese funktion nicht teil einer klasse sein!
Ok, sorry!
Des Teil hat mich bloss ein bisschen gestresst.
Ich weiss, das wir von C++ sprechen.
Ich will einfach eine Funktion aufrufen die ich irgendwo deklariert habe. z.B.
so:
Des Teil hat mich bloss ein bisschen gestresst.
Ich weiss, das wir von C++ sprechen.
Ich will einfach eine Funktion aufrufen die ich irgendwo deklariert habe. z.B.
so:
Code: Alles auswählen
#include <QApplication>
#include <QPushButton>
int funktion(int i)
{
}
int main( ... )
{
QApplication app(argc, argv);
b1 = new QPushButton();
QObject::connect(b1,SIGNAL(clicked),k.A.,funktion);
Warum willst du denn keine Klasse deklarieren?
Ohne eine Klasse gehen keine connects mit selbsterstellten Funktionen, sondern nur soetwas (u.ä.):
Vielleicht hilft dir das Qt-Tutorial weiter:
--> http://doc.trolltech.com/4.2/tutorial-t2.html
Ohne eine Klasse gehen keine connects mit selbsterstellten Funktionen, sondern nur soetwas (u.ä.):
Code: Alles auswählen
#include <QApplication>
#include <QFont>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton quit("Quit");
quit.resize(75, 30);
quit.setFont(QFont("Times", 18, QFont::Bold));
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
quit.show();
return app.exec();
}--> http://doc.trolltech.com/4.2/tutorial-t2.html
In einem "normalen" Projekt läuft das meist so ab:
Du erstellst dir Klassen, welche bestimmte Objekte verwalten oder anzeigen. Irgendwo muss dann dieses ganze "Kuddelmuddel" zusammenlaufen. Dafür wird meist QMainWindow für eigene Zwecke abgeleitet. In dieser Klasse kannst du dann auch, wie du meinst, Programmglobale Funktionen definieren (natürlich als Methoden deiner Klasse!). Nun kannst du jedes Objekt/Widget, welches du für dein QMainWindow sichtbar hältst, mit diesen "Funktionen" verbinden.
Ich hoffe das verschafft ein bisschen mehr Klarheit.
Grüße
Franz
Du erstellst dir Klassen, welche bestimmte Objekte verwalten oder anzeigen. Irgendwo muss dann dieses ganze "Kuddelmuddel" zusammenlaufen. Dafür wird meist QMainWindow für eigene Zwecke abgeleitet. In dieser Klasse kannst du dann auch, wie du meinst, Programmglobale Funktionen definieren (natürlich als Methoden deiner Klasse!). Nun kannst du jedes Objekt/Widget, welches du für dein QMainWindow sichtbar hältst, mit diesen "Funktionen" verbinden.
Ich hoffe das verschafft ein bisschen mehr Klarheit.
Grüße
Franz
Ich weiss zwar nicht warum du unbedingt Funktionen brauchst, die Du von "überall" aufrufen kannst, aber vielleicht hilft dir das Singleton Design Pattern bei der Umsetzung deines Problems. Dann brauchst du nur eine statische Funktion.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Sorry dass ich hier reinplatz, aber meine Frage passt ganz gut hier hin.
Ich habe ein recht umfangreiches Programm in C vorliegen und habe die Aufgabe, eine GUI drüberzulegen (Qt). Wie geh ich am besten vor? Den C Code nach C++ umschreiben oder ist es auch möglich die Funktionen so aufzurufen (wie mollitz hier ebenfalls vorhat)? Denn das umzuschreiben kostet nochmal gut Zeit.
regards
Ich habe ein recht umfangreiches Programm in C vorliegen und habe die Aufgabe, eine GUI drüberzulegen (Qt). Wie geh ich am besten vor? Den C Code nach C++ umschreiben oder ist es auch möglich die Funktionen so aufzurufen (wie mollitz hier ebenfalls vorhat)? Denn das umzuschreiben kostet nochmal gut Zeit.
regards
ich dachte das geht nicht!Du kannst ja die Oberfläche mit C++ schreiben und in den Klassen Methoden die C Funktionen entsprechend aufrufen.... seh da kein Problem.
ich dachte man muss die "funktionen" als statische member funktionen der mainwindow klasse deklarieren, dass man sie von überall aufrufen kann.
Nein, wenn du eine C-Funktion hast, dann kannst du sie von überall aufrufen. Voraussetzung ist nur, dass der Compiler sie findet und die zugehörige Implementierung vom Linker gefunden werden kann.
Für ersteres reicht ein #include der Datei die die Funktionsdeklaration enthält für letzteres muss die entsprechende Bibliothek oder übersetzte C-Datei beim Linken mitangegeben werden.
Für ersteres reicht ein #include der Datei die die Funktionsdeklaration enthält für letzteres muss die entsprechende Bibliothek oder übersetzte C-Datei beim Linken mitangegeben werden.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel