Anfängerproblem mit QT

SuperSonik

Erfahrenes Mitglied
Hi Leute,
ich habe vor ein paar Tagen damit begonnen ein Programm in Qt zu schreiben.
Allerdings habe ich ein Problem einen eigenen Slott zu erstellen.
Hier mal schnell mein Quellcode:


main.cpp:
Code:
#include <QtGui/QApplication.h>
#include <QtGui/QFileDialog.h>
#include <QtGui/QDialog.h>
#include <QT/QString.h>
#include "wetterdaten.h"
#include "dateiauswahl.h"

using namespace Ui;

    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        QMainWindow *window = new QMainWindow;
        Ui::MainWindow ui;
        ui.setupUi(window);
        Dateiauswahl br = new Dateiauswahl(ui.centralwidget,"Test"," ","*");
        QObject::connect(ui.beendenButton, SIGNAL( pressed() ),&app , SLOT( quit() ) );
        QObject::connect(ui.browse, SIGNAL( pressed() ), &br , SLOT( waehleDateiAus(ui.centralwidget ) ) );       
        window->show();
        return app.exec();
    }

datei.h:
Code:
#ifndef DATEIAUSWAHL_H_
#define DATEIAUSWAHL_H_

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QStatusBar>
#include <QtGui/QTimeEdit>
#include <QtGui/QWidget>
#include <QtGui/QFileDialog.h>
#include <QT/QString.h>
#include "wetterdaten.h"

class Dateiauswahl : public QFileDialog{
 Q_OBJECT
private:

	QString f; 
 
public:

   Dateiauswahl(QWidget * parent = 0, const QString & caption = QString(), const QString & directory = QString(), const QString & filter = QString() ) : QFileDialog(parent,caption,directory, filter){};	
	
public slots:

	void waehleDateiAus(QWidget *parent ){
	 
           QString s = QFileDialog::getExistingDirectory(
                    parent,
                    "Waehle das Quellverzeichniss aus",
                    " ");

	 
	
	}	
	
	
	
};

Und diese Datei ist vom Qtdesigner generiert worden:
Code:
#ifndef WETTERDATEN_H
#define WETTERDATEN_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QStatusBar>
#include <QtGui/QTimeEdit>
#include <QtGui/QWidget>
#include <QtGui/QFileDialog.h>
#include <QtGui/QDialog.h>


class Ui_MainWindow
{
	//Q_OBJECT
	
public:
    QWidget *centralwidget;
    QPushButton *speichernButton;
    QPushButton *beendenButton;
    QLabel *label;
    QLabel *label_2;
    QTimeEdit *startzeitEdit;
    QLineEdit *intervallEdit;
    QLabel *label_3;
    QLabel *zielpfad;
    QPushButton *browse;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *MainWindow)
    {
    MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
    MainWindow->resize(QSize(370, 233).expandedTo(MainWindow->minimumSizeHint()));
    centralwidget = new QWidget(MainWindow);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    speichernButton = new QPushButton(centralwidget);
    speichernButton->setObjectName(QString::fromUtf8("speichernButton"));
    speichernButton->setGeometry(QRect(40, 170, 75, 24));
    beendenButton = new QPushButton(centralwidget);
    beendenButton->setObjectName(QString::fromUtf8("beendenButton"));
    beendenButton->setGeometry(QRect(250, 170, 75, 24));
    label = new QLabel(centralwidget);
    label->setObjectName(QString::fromUtf8("label"));
    label->setGeometry(QRect(20, 10, 121, 16));
    label_2 = new QLabel(centralwidget);
    label_2->setObjectName(QString::fromUtf8("label_2"));
    label_2->setGeometry(QRect(20, 50, 121, 16));
    startzeitEdit = new QTimeEdit(centralwidget);
    startzeitEdit->setObjectName(QString::fromUtf8("startzeitEdit"));
    startzeitEdit->setGeometry(QRect(230, 10, 118, 22));
    intervallEdit = new QLineEdit(centralwidget);
    intervallEdit->setObjectName(QString::fromUtf8("intervallEdit"));
    intervallEdit->setGeometry(QRect(230, 50, 113, 20));
    label_3 = new QLabel(centralwidget);
    label_3->setObjectName(QString::fromUtf8("label_3"));
    label_3->setGeometry(QRect(20, 90, 61, 16));
    zielpfad = new QLabel(centralwidget);
    zielpfad->setObjectName(QString::fromUtf8("zielpfad"));
    zielpfad->setGeometry(QRect(80, 90, 141, 16));
    browse = new QPushButton(centralwidget);
    browse->setObjectName(QString::fromUtf8("browse"));
    browse->setGeometry(QRect(250, 90, 75, 24));
    MainWindow->setCentralWidget(centralwidget);
    statusbar = new QStatusBar(MainWindow);
    statusbar->setObjectName(QString::fromUtf8("statusbar"));
    statusbar->setGeometry(QRect(0, 214, 370, 19));
    MainWindow->setStatusBar(statusbar);
    
    retranslateUi(MainWindow);
	
    QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
    MainWindow->setWindowTitle(QApplication::translate("MainWindow", "Wetterdaten", 0, QApplication::UnicodeUTF8));
    speichernButton->setText(QApplication::translate("MainWindow", "Speichern", 0, QApplication::UnicodeUTF8));
    beendenButton->setText(QApplication::translate("MainWindow", "Beenden", 0, QApplication::UnicodeUTF8));
    label->setText(QApplication::translate("MainWindow", "Startzeitpunkt", 0, QApplication::UnicodeUTF8));
    label_2->setText(QApplication::translate("MainWindow", "\303\234bertragungsintervall", 0, QApplication::UnicodeUTF8));
    label_3->setText(QApplication::translate("MainWindow", "Quellordner:", 0, QApplication::UnicodeUTF8));
    zielpfad->setText(QApplication::translate("MainWindow", "", 0, QApplication::UnicodeUTF8));
    browse->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(MainWindow);
    } // retranslateUi

};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

#endif // WETTERDATEN_H

Was ich erreichen will ist das Öffnen des Directoryauswahlmenüs beim klicken des Browse-Buttons.

Ich muss sagen das ich nicht gerade fit in OOP bin. Ist lange her ...
Gruß,
SuperSonik
 
Hallo,
das Signal "pressed()" hat keinen Parameter. Demzufolge musst du den Slot dafür auch ohne Parameter implementieren, sonst passen beide nicht zusammen.

Gruß
MCoder
 
Zurück