Hallo,
hab gerade die Suche angeworfen ("QT4 slots") und bin auf einen Thread ohne Antworten gestoßen, der genau dieses Problem behandelt.
Ich hab mir das Interface mit dem Designer angelegt und möchte den Rest von Hand machen. Da es ein Taschenrechner werden soll, möchte ich die Zahlentasten mit einer input()-Funktion verbinden, die dann auf einem lineEdit den Kram ausgibt, und intern außerdem die Zahl ergänzt, um später damit rechnen zu können.
Nun das Problem: Wie kann ich eigene Slots anlegen?
Hier mal die gekürzte ui_rechner.h:
Was mache ich falsch? Bzw. in welche Datei/Klasse muss ich die Slots schreiben?
Gruß
jojomp
Achja, auf der Konsole wird ausgegeben:
Object::connect: No such slot QDialog::input()
Object::connect: (sender name: 'zahl_1')
Object::connect: (receiver name: 'window')
hab gerade die Suche angeworfen ("QT4 slots") und bin auf einen Thread ohne Antworten gestoßen, der genau dieses Problem behandelt.
Ich hab mir das Interface mit dem Designer angelegt und möchte den Rest von Hand machen. Da es ein Taschenrechner werden soll, möchte ich die Zahlentasten mit einer input()-Funktion verbinden, die dann auf einem lineEdit den Kram ausgibt, und intern außerdem die Zahl ergänzt, um später damit rechnen zu können.
Nun das Problem: Wie kann ich eigene Slots anlegen?
Hier mal die gekürzte ui_rechner.h:
Code:
class Ui_window : public QDialog // das public QDialog hab ich hinzugefügt
{
// mein Versuch
private slots:
void input(/*int value*/) {
printf("INPUT!\n");
//lineEdit->setText(lineEdit->displayText() + value);
}
void calc_wurzel() {
} // calc_wurzel
public:
QWidget *widget;
//......
QPushButton *zahl_1;
QPushButton *close;
QLineEdit *lineEdit;
MAPM calc_zahl1,calc_zahl2;
void setupUi(QDialog *window)
{
//....
//das ist noch vom Designer
QObject::connect(close, SIGNAL(clicked()), window, SLOT(close()));
//hier hab ich versucht zu verbinden
QObject::connect(zahl_1, SIGNAL(clicked()), window, SLOT(input()));
QMetaObject::connectSlotsByName(window);
} // setupUi
void retranslateUi(QDialog *window)
{
// ....
} // retranslateUi
};
namespace Ui {
class window: public Ui_window {};
} // namespace Ui
Was mache ich falsch? Bzw. in welche Datei/Klasse muss ich die Slots schreiben?
Gruß
jojomp
Achja, auf der Konsole wird ausgegeben:
Object::connect: No such slot QDialog::input()
Object::connect: (sender name: 'zahl_1')
Object::connect: (receiver name: 'window')
Zuletzt bearbeitet: