Qt:QObject::connect : No such Slot
poua
-
Drerrawyn Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Drerrawyn Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous et à toutes ,
Mon problème est : comment créer un slot a partir du mainwindow.h et mainwindow.cpp
J'ai déjà essayé plusieurs fois mais sans arriver à une solution.
Selon mes connaissances, j'ai tapé ce code là.
@ : mainwindow.h
@ : mainwindow.cpp
@ : main.cpp
Et merci pour tout le monde ,
;-)
Mon problème est : comment créer un slot a partir du mainwindow.h et mainwindow.cpp
J'ai déjà essayé plusieurs fois mais sans arriver à une solution.
Selon mes connaissances, j'ai tapé ce code là.
@ : mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDialog>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
public slots:
void MonSlot();
};
#endif // MAINWINDOW_H
@ : mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMainWindow>
#include <QDialog>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::MonSlot(){
QDialog UnDialog;
UnDialog.exec();
}
@ : main.cpp
QApplication a(argc, argv);
QMainWindow w;
w.setWindowTitle("TextWrap");
w.setFixedSize(722 , 465);
w.setWindowIcon(QIcon("linecons_e00f.ico"));
QToolBar *toolbar = new QToolBar("main toolbar" , &w);
toolbar->setEnabled(true);
toolbar->setMovable(false);
toolbar->setFixedSize(722 , 40);
QAction *Previous = new QAction(QIcon("previous.ico") , "Previous" , qApp);
toolbar->addAction(Previous);
QObject::connect(Previous , SIGNAL(triggered(bool)) , qApp , SLOT(MonSlot()));
toolbar->show();
w.show();
return a.exec();
Et merci pour tout le monde ,
;-)
A voir également:
- Qobject::connect: no such slot
- Qt sdk - Télécharger - Langages
- Qt web - Télécharger - Navigateurs
- Qt tab bar - Télécharger - Personnalisation
- Qt linux ✓ - Forum Ubuntu
- QT sous windows ✓ - Forum Programmation
1 réponse
Salut !
Connect() fonctionne avec comme premier paramètre un pointeur sur un objet, puis un signal de cet objet, ensuite un pointeur vers un deuxième objet, puis un slot de cet objet.
Là tu lies le signal
Ta ligne connect() sera don:
Connect() fonctionne avec comme premier paramètre un pointeur sur un objet, puis un signal de cet objet, ensuite un pointeur vers un deuxième objet, puis un slot de cet objet.
Là tu lies le signal
triggered(bool)qui appartient à l'objet "Previous" au slot
MonSlot()qui, malheureusement n'appartient pas à l'objet qApp, mais appartient à ta classe, celle qui l'appelle, pour ça, il faut un pointeur vers ton objet, à savoir le pointeur
this.
Ta ligne connect() sera don:
Object::connect(Previous , SIGNAL(triggered(bool)) , this, SLOT(MonSlot()));