Seite 1 von 1

[gelöst] eigene Funktion wird doppelt ausgeführt ?

Verfasst: 16. April 2008 22:32
von Celuldor
hi
bin was qt angeht n totaler neuling und habe über die forums suche leider nix passendes gefunden

ich möchte gerne ein tool mit qt gui bauen das auf buttoklick etwas in die konsole schreibt

das funktioniert auch soweit (nur leider zu gut)
beim klick wird der text zweimal geschrieben

was mach ich falsch ?

---
hier mal mein code:
button.pro

Code: Alles auswählen

######################################################################
# Automatically generated by qmake (2.01a) Mi Apr 16 22:18:42 2008
######################################################################

TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += button.h CTForm.h
SOURCES += CTForm.cpp main.cpp
main.cpp

Code: Alles auswählen

#include <QApplication>
#include "CTForm.h"

int main(int argc, char* argv[])
{
	QApplication app(argc, argv);
	CTForm window;
	window.show();
	return app.exec();
}
CTForm.cpp

Code: Alles auswählen

#include <iostream>
#include "CTForm.h"
using namespace std;

CTForm::CTForm(QMainWindow *parent) : QMainWindow(parent)
{
	ui.setupUi(this);
}

void CTForm::on_pushButton_clicked()
{
	cout << "button 1" << endl;
}

void CTForm::on_pushButton_2_clicked()
{
	cout << "button 2" << endl;
}
CTForm.h

Code: Alles auswählen

#ifndef __CTFORM__H__
#define __CTFORM__H__
#include "button.h" 

class CTForm : public QMainWindow 
{ 
Q_OBJECT

public:
	CTForm(QMainWindow *parent = 0);

public slots:
	void on_pushButton_clicked();
	void on_pushButton_2_clicked();

private: 
	Ui::MainWindow ui;
};

#endif /* __CTFORM__H__ */
button.h

Code: Alles auswählen

/********************************************************************************
** Form generated from reading ui file 'untitled.ui'
**
** Created: Wed Apr 16 19:56:30 2008
**      by: Qt User Interface Compiler version 4.3.4
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_UNTITLED_H
#define UI_UNTITLED_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>
#include "CTForm.h"
class Ui_MainWindow
{
public:
    QWidget *centralwidget;
    QPushButton *pushButton;
    QPushButton *pushButton_2;
    QPushButton *pushButton_3;

    void setupUi(QMainWindow *MainWindow)
    {
    if (MainWindow->objectName().isEmpty())
        MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
    MainWindow->resize(118, 114);
    centralwidget = new QWidget(MainWindow);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    pushButton = new QPushButton(centralwidget);
    pushButton->setObjectName(QString::fromUtf8("pushButton"));
    pushButton->setGeometry(QRect(10, 10, 97, 25));
    pushButton_2 = new QPushButton(centralwidget);
    pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
    pushButton_2->setGeometry(QRect(10, 40, 97, 25));
    pushButton_3 = new QPushButton(centralwidget);
    pushButton_3->setObjectName(QString::fromUtf8("pushButton_3"));
    pushButton_3->setGeometry(QRect(10, 70, 97, 25));
    MainWindow->setCentralWidget(centralwidget);

    retranslateUi(MainWindow);
    QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(on_pushButton_clicked()));
    QObject::connect(pushButton_2, SIGNAL(clicked()), MainWindow, SLOT(on_pushButton_2_clicked()));
    QObject::connect(pushButton_3, SIGNAL(clicked()), MainWindow, SLOT(close()));

   QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
    MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
    pushButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));
    pushButton_2->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));
    pushButton_3->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(MainWindow);
    } // retranslateUi

};

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

#endif // UI_UNTITLED_H

Verfasst: 17. April 2008 07:31
von macman
Doppelter connect. Einmal greift der Autoconnect vom MOC und dann connectest Du noch selbst.

Verfasst: 23. April 2008 21:50
von Celuldor
:-)

ok ich weiss
es hat etwas länger gedauert bis ich verstanden hab was du meintest^^

danke hat das probb gelöst :-)