Qt5 通過指標函式指定connect裡呼叫哪種過載函式
阿新 • • 發佈:2019-02-18
//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();
}