Je suis nouveau à Qt et en essayant d'écrire le signal et l'emplacement. Voici le code que j'essayais de lancer. avec des mots-clés SLOT et SIGNAL sur la fonction "connect", cela fonctionne très bien. Mais je ne veux pas utiliser les mots-clés SIGNAL et SLOT sur la fonction de connexion, mais plutôt utiliser une approche différente.QT signal et l'emplacement ne fonctionne pas donnant un message d'erreur
class MyWindow:public QMainWindow
{
Q_OBJECT
public:
MyWindow();
};
MyWindow::MyWindow()
{
QWidget *widget=new QWidget;
QHBoxLayout *layout =new QHBoxLayout;
QSpinBox *mySlide = new QSpinBox;
mySlide->setRange(0,10);
QLCDNumber *lcdNumber= new QLCDNumber;
layout->addWidget(mySlide);
layout->addWidget(lcdNumber);
connect(mySlide,SIGNAL(valueChanged(int)),lcdNumber,SLOT(display(int)));
// connect(mySlide, &QSpinBox::valueChanged,lcdNumber, &QLCDNumber::display);
widget->setLayout(layout);
setCentralWidget(widget);
}
Dans le code ci-dessus, la fonction décommentée connexion fonctionne très bien, mais la fonction de connexion ne commenté fonctionne pas. Je reçois erreur "aucune fonction correspondante pour appeler MyWindow :: connect". Je ne sais pas quelle erreur j'ai faite ici. Je suivais cet article de qt.
http://doc.qt.io/qt-5/qtopengl-hellogl2-window-cpp.html
Merci beaucoup. Cela a fonctionné. Mais juste curieux de savoir pourquoi connecter (mySlide, SIGNAL (valueChanged (int)), lcdNumber, & QLCDNumber :: affichage) ne fonctionnait pas. la première partie est explicitement signalée. – LilRazi
Vous ne pouvez pas mélanger et faire correspondre les différentes syntaxes de signal/emplacement. C'est soit toute la syntaxe SIGNAL et SLOT * ou * le nouveau pointeur vers la syntaxe membre. –