cast شما درست هست و موردی نداری ولی مشکل اینجاست که widget به صورت ثابت تعریف شده و اگر cast مشا هم به صورت ثابت باشه خطایی نخواهید داشت.
QString getWidgetText(const QWidget* widget)const{
QString result = "";
if (qobject_cast<const QComboBox*>(widget)){
}
else if (qobject_cast<const QComboBox*>(widget)){
}
return result;
}