Llamar Accion con Connect en QT

Iniciado por mk_137, 30 Junio 2010, 15:57 PM

0 Miembros y 1 Visitante están viendo este tema.

mk_137

He estado intentando llamar una accion mediante un boton y un connect, pero no hay manera, no se como quitar el error:
Object::connect: No such slot MainWindow::show_text() in ..\prueba2\mainwindow.cpp:20

Los que ya hay definidos como clear(), close() funcionan perfectamente, pero si es una funcion hecha por mi me dice el error indicado.

Este es el mainwindow.cpp :

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

void MainWindow::show_text()
{
       ui->textBrowser->setTextBackgroundColor(QColor(255,100,100,255));
       ui->textBrowser->setText("hola");
}

void MainWindow::prepare_buttons()
{
    this->connect(ui->clearButton,SIGNAL(clicked()),ui->textBrowser,SLOT(clear()));
    this->connect(ui->startButton,SIGNAL(clicked()),this,SLOT(show_text()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

[L]ord [R]NA

Si muestras el MainWindow.h podria ayudarte... quiero ver si declaraste show_text() como un private slot.

mk_137

#2
Cita de: Lord R.N.A. en 30 Junio 2010, 17:26 PM
Si muestras el MainWindow.h podria ayudarte... quiero ver si declaraste show_text() como un private slot.
aaaa... pues no tenia ni idea que se devia declarar de algun modo especial, pensava que podia llamar a una funcion cualquiera.
Ahora busco lo que me has comentado, te pego el MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>


namespace Ui {
   class MainWindow;
}

class MainWindow : public QMainWindow
{
   Q_OBJECT


public:
   explicit MainWindow(QWidget *parent = 0);
   void show_text();
   void prepare_buttons();
   ~MainWindow();

private:
   Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


Lh: No hagas doble post!

Muchas gracias Lord.RNA, no sabia que existia esto.

Al final me ha quedado asi y funciona.

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>


namespace Ui {
   class MainWindow;
}

class MainWindow : public QMainWindow
{
   Q_OBJECT


public:
   explicit MainWindow(QWidget *parent = 0);
   void prepare_buttons();
   ~MainWindow();

public slots:
   void show_text();

private:
   Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H