1. 程式人生 > >Qt5 通過指標函式指定connect裡呼叫哪種過載函式

Qt5 通過指標函式指定connect裡呼叫哪種過載函式

//Qt5通過指標函式指定connect裡呼叫哪種過載函式
#include<QApplication>
#include<QSpinBox>
#include<QSlider>//滑動器
#include<QHBoxLayout>
intmain(intargc,char*argv[])
{
QApplicationapp(argc,argv);
QWidgetwindow;
window.setWindowTitle("Marco");
QSpinBox*spinbox=newQSpinBox(&window);
QSlider*slider=
newQSlider(Qt::Horizontal,&window);
spinbox->setRange(0,130);
slider->setRange(0,130);
QObject::connect(slider,&QSlider::valueChanged,spinbox,&QSpinBox::setValue);
//QSpinBox的valueChanged有兩種過載形式如果僅通過訊號傳入connet()編譯器是無法確定呼叫函式的
//因此可通過指標函式指定引數型別從而確定呼叫哪種函式
//voidvalueChanged(inti)
//voidvalueChanged(const
QString&text)
void(QSpinBox::*spinboxSingal)(int)=&QSpinBox::valueChanged;
QObject::connect(spinbox,spinboxSingal,slider,&QSlider::setValue);
QHBoxLayout*layout=newQHBoxLayout;
layout->addWidget(spinbox);
layout->addWidget(slider);
window.setLayout(layout);
window.show();
returnapp.
exec();
}