2009-09-02 22 views

Trả lời

5

Chúng tôi phần nào trả lời nó trong câu hỏi khác của bạn

Why does Qt use its own make tool, qmake?

Nhưng đi vào chi tiết hơi hơn, MỘC phân tích tập tin bạn đang tìm kiếm tín hiệu/tờ khai khe (cũng như các thuộc tính và các cấu trúc hỗ trợ khác) và tạo các tệp mã trung gian dựa trên các tệp đó. Các tệp mã trung gian này cung cấp khả năng truy cập mạnh mẽ vào các tín hiệu và vị trí để thư viện sử dụng để giao tiếp với các đối tượng của bạn.

qmake tạo tệp makefile tự động bao gồm các tệp trung gian này (cũng như bất kỳ tệp giao diện người dùng hoặc tài nguyên nào được tạo) cũng như mã của riêng bạn để bạn có thể xây dựng với chuỗi công cụ lựa chọn của mình.

10

Như những người khác đã nói, có rất tốt documetnation Qt sẵn cho chủ đề này. Nếu bạn muốn biết điều gì xảy ra dưới mui xe, thông tin này có thể giúp bạn:

Các khe chỉ là các phương pháp thông thường. Không có gì đặc biệt ở đó, EXCEPT moc sẽ lưu chữ ký của họ trong một bảng trong tệp .moc trung gian - bạn có thể thấy bảng này khá rõ ràng khi bạn xem qua tệp này.

Bảng này cho phép bạn gọi một phương thức sử dụng chữ ký của nó. Các SLOT(mySlot(int)) vĩ mô sôi xuống đến một chuỗi đại diện của phương pháp trong câu hỏi. Có một số cách bạn có thể làm điều này, xem tài liệu cho ví dụ QMetaObject.

Khi bạn kết nối tín hiệu với khe, tín hiệu và dấu hiệu vùng được lưu trữ để sử dụng sau này. Khi một tín hiệu được phát ra, tất cả các khe được kết nối trước đó với tín hiệu đó được gọi bằng cách sử dụng phương pháp được mô tả ở trên.

Nếu bạn muốn biết thêm, tôi khuyên bạn nên xem xét mã được tạo bằng moc, và bước qua phát xạ tín hiệu và nội bộ của lệnh connect(). Không có phép thuật ở đây, nhưng có rất nhiều sự thông minh.

+1

rất nhiều sự thông minh, nhưng không có phép thuật! nhắc tôi về http://catb.org/esr/jargon/html/magic-story.html – jrharshath

+0

Và có 2 loại kết nối ở đó. Thứ nhất: khe được gọi lúc tín hiệu thời gian được phát ra. Và thứ hai: cuộc gọi khe được đặt trong hàng đợi vòng lặp sự kiện. Bạn có thể chọn phương pháp thủ công trong kết nối, nhưng kết nối tín hiệu và khe từ các luồng khác nhau luôn được xếp hàng đợi. – JustAnotherCurious

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