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