2009-08-09 22 views
26

Tôi quan tâm đến việc học Qt. Tôi khá tốt với C++, STL và Boost. Tôi thích STL/Boost phong cách rất nhiều, và tôi sử dụng chúng với C++ bất cứ khi nào tôi có thể trong các dự án uni. Tuy nhiên, tôi luôn nhớ GUI. Dường như Qt là giải pháp tốt nhất trong trường hợp của tôi. Qt có một bộ sưu tập tốt các container, nhưng tôi rất quen thuộc với các công cụ STL/Boost.Qt có hoạt động tốt với STL & Boost không?

Tôi nên làm gì khi học Qt và sử dụng nó cùng với STL/Boost?

Trả lời

32

Có, Qt hoạt động tốt với cả Boost và STL. Hầu hết các chức năng STL được nhân đôi trong Qt để đảm bảo rằng các tính năng như vậy được hỗ trợ trên tất cả các nền tảng hỗ trợ Qt. Tuy nhiên, không có gì cấm bạn sử dụng STL/boost counterparts của các cấu trúc Qt hoặc chức năng trong đó Qt thiếu.

Mặc dù Qt có chuỗi, đối tượng chứa và thuật toán riêng, nhưng nó cũng chứa rất nhiều hàm cho khả năng tương thích với STL. Ví dụ, một QString có thể được chuyển đổi thành chuỗi std :: và QVector có thể được sử dụng với std :: for_each. Qt cũng chứa một số tính năng chồng chéo với tăng như QPointer (so sánh/tương phản với std: auto_ptr và boost: shared_ptr).

Bài viết Creating Custom Qt Types có thể cung cấp một số thông tin chi tiết về cách sử dụng các tính năng nâng cao với các đối tượng tăng cường như transmitting custom objects between threads with queued connections.

Xem thêm:

11

Qt không làm việc khá tốt cùng với STL, mặc dù như khuôn khổ nào họ đã phải thay thế một số cấu trúc STL ra cần thiết (các chỉ có một bạn sẽ thấy mình buộc phải sử dụng là chuỗi/unicode). Mọi thứ từ Boost hoạt động tốt - thực tế nó là một bộ công cụ tuyệt vời để sử dụng cùng nhau, nhưng bạn sẽ cần phải cẩn thận với boost :: signal, vì Qt cũng có khả năng thực hiện tín hiệu và tên có thể chồng lên nhau. Tăng cường bao gồm điều này trong một FAQ và có một số thông tin trên trang web trolltech cũng như làm thế nào để tránh vấn đề.

+2

Tài liệu Qt cũng giải quyết vấn đề về tín hiệu/vị trí tại đây: http://doc.trolltech.com/4.5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots –

Các vấn đề liên quan