wenn ich jetzt den button anklicke passiert aber nichts (also es öffnet sich kein nettes explorerfenster, das mir den inhalt des oben angegebenen verzeichnisses anzeigt)
und was bringt dich auf die Idee, dass "void open_path() " irgendwie mit "app" (connect(&ws_01,SIGNAL(clicked()), &app,SLOT(open_path()))) zusammenhängt?
[EDIT]
Und falls du das obige Problem gelöst hast... ein "eplorer" gibt's bei Windows nicht..
Entweder eine Klasse von QObject ableiten und da dann diesen SLOT implementieren. Oder halt gleich eine von QWidget ableiten, in dem Widget den Button und andere Widgets in ein Layout packen, den SLOT definieren und im Konstruktor connecten.
Wenn du NUR den Button hast, kannst du direkt von QPushButton ableiten.
rungaaz hat geschrieben:
wenn ich jetzt den button anklicke passiert aber nichts (also es öffnet sich kein nettes explorerfenster, das mir den inhalt des oben angegebenen verzeichnisses anzeigt)
warum ist das so?
Qt ist objektorientiert.
Da ist nichts mit reinem C-Code.
Schau Dir mal die Qt-Beispiele und Doku an, wie das dort gehandelt wird.
naja aber was ist den daran so falsch, wenn man ein funktion in einem slot aufruft?
gut da muss ich ehrlich dazusagen ich habe keine ahnung was ich statt &app schreiben soll.
ich habe mit ein qt buch gekauft und auch schon ein bisschen durchgeblättert. aber mit durchblättern alleine wirds wohl nicht getan sein.
das typische machen wollen aber nicht machen können eben.
connect() verbindet Signale mit SLOTS (und Signalen) zwischen OBJEKTEN. Ein Objekt ist eine Instanz einer Klasse, Signal und SLot müssen als Member dieser Klassen deklariert sein.
Dein Versuch ging über eine freie Funktion. Diese steht in keinerlei Verbindung zu einem Objekt (außer vllt. die Parameter). Frei eben. Und darum hat die nix in nem connect verloren! Und genau das wüsstest du, wenn du dir die Qt-Doku zu connect(), QObject, und ein paar der examples anschauen würdest.