J'ai le problème suivant. J'utilise Qt dans la nouvelle version 5.2 et dans mon code j'ai 11 QSpinBox
. Tous au QGridLayout
. Je veux itérer à travers chaque QSpinBox
dans cette mise en page et définir la valeur que j'ai lu à partir du fichier. Quand j'utilise:Comment parcourir chaque QSpinBox dans QGridLayout
ui.QSpinBox->setValue()
Tout va bien, mais le code semble trop long. J'ai essayé d'utiliser:
static_cast<QSpinBox*>(ui.gridLayout->itemAtPosition(1,1)->widget())->setValue(100);
mais je reçois violation d'exception d'accès et MS VS2010 me montrer cette fonction qatomic_mscv.h:
inline bool QAtomicOpsBySize<4>::deref(long &_q_value) Q_DECL_NOTHROW
{
return QT_INTERLOCKED_DECREMENT(&_q_value) != 0;
}
Alors je pensais à ne pas utiliser le pointeur pour QSpinBox
mais un objet:
static_cast<QSpinBox>(ui.gridLayout->itemAtPosition(1,1)->widget()).setValue(100);
mais cela n'a pas changé la valeur. Aucune exception ne s'est produite.
OK, j'ai utilisé même avec dynamic_cast type pointeur et je me suis à nouveau accès Violation mais cette fois VS2010
pointme qscopedpointer.h:
inline T *data() const
{
return d;
}
Il arrive pour qobject_cast
aussi.
Je suis sûr que ce point de position à QSpinBox. Qu'est-ce que je fais mal?