2013-07-26 2 views
2

J'utilise C++ et Qt pour créer un duplicateur de mots. Je fais ça comme un test, alors ne déteste pas! Mon code actuel, pour faire un signal en cliquant sur le bouton estC++ Qt SLOT Erreur

void MainWindow::on_pushButton_clicked() { 

QObject::connect(ui->pushButton, SIGNAL(clicked()), ui->textEdit, SLOT(setText(ui->lineEdit->text()))); 
} 

Je veux que le TextEdit pour avoir son texte modifié à tout ce qui est dans la lineEdit * spinbox-> valeur() Je donne les résultats suivants comprend

#include "ui_mainwindow.h" 
#include <QtCore> 
#include <QtGui> 
#include <string> 

et voici l'erreur quand je le lance en mode débogage

QObject::connect: No such slot QTextEdit::setText(ui->lineEdit->text()) in ..\wordX\mainwindow.cpp:22 
QObject::connect: (sender name: 'pushButton') 
QObject::connect: (receiver name: 'textEdit') 

Répondre

4

Pourquoi vous essayez de faire la connexion là-dedans, et pour une s correcte de connexion En effet, si vous ne transmettez pas de valeurs, vous devez spécifier uniquement les types, ce qui signifie que vous ne pouvez pas connecter un slot qui prend un paramètre QString au signal cliqué (car ce signal ne transmet aucun paramètre).

Maintenant, si je ne manquais pas tout ce que vous ne définissez même pas besoin de cette connexion, vous venez le texte là, cet emplacement est auto-connected au signal clicked du PushButton il exécute chaque fois que vous cliquez sur le bouton est:

void MainWindow::on_pushButton_clicked() { 
//just set the text here 
    ui->textEdit->setText(ui->lineEdit->text()); 
} 

en savoir plus sur les signaux et les fentes dans le documentation et demander si certaines choses ne sont pas claires.

+0

Maintenant, j'essaie d'utiliser une boucle for pour ajouter le mot dans la ligne Edit dans le textEdit et ceci est mon code actuel pour (int num = 0; ui-> spinBox-> value()> = num ; num ++) { ui-> textEdit-> append (ui-> lineEdit-> text()); } – Varosion