Llamar Accion con Connect en QT

(1/1)

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 :

Código:

#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:
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

Código:

#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.

Código:

#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

Navegación

[0] Índice de Mensajes