私はこのコードをライブラリでかなり長い間実行してきました:
MyClass::MyClass()
: QDialog()
{
// (...)
setWindowFlags( Qt::CustomizeWindowHint | Qt::WindowTitleHint );
// (...)
}
次に、ライブラリのさまざまな部分を変更した後、突然次のメッセージが表示されます。
error C2664: 'QWidget::setWindowFlags': cannot convert parameter 1 from 'int' to 'Qt::WindowFlags'
どうやらそれは|を見つけられません QFlagsクラスによって提供される演算子のオーバーロードにより、|の結果が QFlags構文ではなくintを返します。
結果を手動でキャストして機能さ(Qt::WindowFlags)
せることはできますが、QFlagsを使用すると、通常、この種のキャストは不要になります。
どのような変化がこの行動につながる可能性があるのか、何か考えはありますか?
<QtGui/QDialog>
通常はどちらで十分かを含めます。含めても<QtCore/QFlags>
動作は変わりません。