Ho avuto questo codice in esecuzione per un po 'in una libreria:QFlags Enum Tipo conversione fallisce tutto ad un tratto
MyClass::MyClass()
: QDialog()
{
// (...)
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint);
// (...)
}
Poi, dopo aver cambiato varie parti della biblioteca, ottengo questo messaggio tutti un improvviso:
error C2664: 'QWidget::setWindowFlags': cannot convert parameter 1 from 'int' to 'Qt::WindowFlags'
Apparentemente non trova il | sovraccarico dell'operatore fornito dalla classe QFlags in modo che il risultato di | restituisce un int invece che un costrutto QFlags.
So che potrei trasmettere manualmente il risultato a (Qt::WindowFlags)
e farlo funzionare, ma QFlags di solito rende questo tipo di cast non necessario.
Qualche idea sul tipo di modifica che potrebbe portare a questo comportamento?
Sono incluso <QtGui/QDialog>
che di solito sarebbe sufficiente. Includere <QtCore/QFlags>
non modifica il comportamento.
Ha senso, grazie per la spiegazione dettagliata. –