2013-01-10 12 views
8

Tôi vừa cài đặt Qt Creator 2.6.1 dựa trên Qt 5.0.QDialog không phải là tập tin hoặc thư mục đó - Qt Windows

Tôi đang cố mở một dự án được tạo trên 4.8 nhưng tôi không thể biên dịch nó. Nó giữ cho tôi thấy lỗi của "không phải tập tin hoặc thư mục đó".

error: C1083: Cannot open include file: 'QtGui/QApplication': No such file or directory 

error: C1083: Cannot open include file: 'QDialog': No such file or directory 

error: C1083: Cannot open include file: 'QMainWindow': No such file or directory 

error: C1083: Cannot open include file: 'QWidget': No such file or directory 

Và nhiều hơn nữa.

Tôi đã thêm đường dẫn qmake.exe vào PATH ... tôi có cần phải làm gì khác không?

Trả lời

19

Đọc hướng dẫn chuyển đổi từ Qt4 đến Qt5. Link1Link2Link3

Một trong những thay đổi cơ sở hạ tầng nội bộ lớn trong Qt 5 so với Qt 4 là tách vật dụng từ các module QtGui vào một module QtWidgets mới. Điều này rõ ràng sẽ yêu cầu thay đổi hệ thống ở mức ít nhất là , nhưng cũng khiến nhu cầu hạ lưu thêm vào cho các tiêu đề không cần thiết trước đó, như những tiêu đề đã bị loại bỏ khỏi các tiêu đề hiện còn trong mô-đun QtGui.

Một vấn đề khác liên quan đến việc chuyển từ Qt 4 sang Qt 5 đang xử lý với các lớp học đã chuyển sang mô-đun QtWidgets. Trong khi Qt 4 mã dựa có thể sử dụng

#include <QtGui/QWidget> 
This must be updated to either 

#include <QtWidgets/QWidget> 
Or more portably (Which works in Qt 4 and Qt 5): 

#include <QWidget> 
5

Tôi đã cố này, hãy thực hiện hai thay đổi

  1. echo "QT + = widget" >> /fileProject.pro

  2. thêm #include QDialog vào tệp containsign Tuyên bố QDialog

trước đây bao gồm QtGui là đủ nhưng QT5 chia nhỏ các widget thành nhiều tệp .h, do đó cần phải bao gồm chúng. Ví dụ QtMenuBar đã được bao gồm trong QtMenu.h nhưng bây giờ nó đòi hỏi QtMenuBar.h phải đượC#included