Tôi đã có mã này chạy khá lâu trong một thư viện:QFlags Enum Loại Chuyển đổi thất bại tất cả của một đột ngột
MyClass::MyClass()
: QDialog()
{
// (...)
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint);
// (...)
}
Sau đó, sau khi thay đổi các phần khác nhau của thư viện, tôi nhận được tin nhắn này tất cả đột ngột:
error C2664: 'QWidget::setWindowFlags': cannot convert parameter 1 from 'int' to 'Qt::WindowFlags'
Dường như nó không tìm thấy | toán tử quá tải được cung cấp bởi lớp QFlags để kết quả của | trả về một int chứ không phải là một cấu trúc QFlags.
Tôi biết tôi có thể truyền kết quả theo cách thủ công đến (Qt::WindowFlags)
và làm cho nó hoạt động, nhưng QFlags thường sẽ làm cho loại diễn viên này không cần thiết.
Bất kỳ ý tưởng nào về loại thay đổi nào có thể dẫn đến hành vi này?
Tôi bao gồm <QtGui/QDialog>
thường là đủ. Bao gồm <QtCore/QFlags>
không thay đổi hành vi.
Làm cho tinh thần, cảm ơn lời giải thích chi tiết. –