Ich versuche eine Funktion zu erstellen, die einen (qt) Type als Parameter verwendet und damit Kinder findet. Meine Funktion sieht wie folgt aus:Qt Typ als Parameter der Funktion
template <typename QType>
void MyClass::activateElements(QWidget *widget, QType t)
{
QList<QType *> buttons = widget->findChildren(t);
foreach(QType *button, buttons)
{
buttons->setEnabled(true);
}
}
ich auch
template <typename QType>
void MyClass::activateElements(QWidget *widget, QType)
{
QList<QType *> buttons = (* widget).findChildren<QType *>();
foreach(QType *button, buttons)
{
button->setEnabled(true);
}
}
versucht haben, instanziieren ich ein Objekt der Klasse, die diese Funktion in einer anderen Klasse verwendet. Es versuche ich, es so zu verwenden:
QDoubleSpinBox x;
object_of_my_class->activateElements(correctWidget, x);
An diesem Punkt, den ich nicht weiterkommen, weil ich die folgende Fehlermeldung erhalten:
error: ‘QDoubleSpinBox::QDoubleSpinBox(const QDoubleSpinBox&)’ is private Q_DISABLE_COPY(QDoubleSpinBox)
Wie würde ich dieses Problem umgehen, dass QDoubleSpinBox und andere sind Privatgelände? Habe ich angesprochen, wie man die Funktion falsch baut oder verwende ich sie nur falsch? Gibt es überhaupt einen Weg dies zu tun?
„_How würde ich umgehen dieses Problem, dass QDoubleSpinBox und andere sind privat? _ "Der Fehler besagt, dass ** copy-constructor ** von' QDoubleSpinBox' privat ist (dh es kann nicht kopiert werden). Pass auf Referenz statt auf Wert. –