2010-01-19 21 views
14

Tôi biết chúng có thể được sử dụng cùng nhau, nhưng tôi tự hỏi liệu có thể thay thế tín hiệu và khe cắm của Qt bằng Boost.Signal trong các phần Qt của chương trình hay không.Sử dụng Boost.Signal thay vì tín hiệu của Qt? Làm mà không có moc?

Có ai từng thử không? Bất kỳ gotchas?

Giả sử tôi không sử dụng bất kỳ tính năng nào khác của MOC và thay thế tín hiệu/vị trí bằng boost.signal, có thể thực hiện mà không có moc hoàn toàn không?

+0

[Trộn Qt và Tăng] (http://stackoverflow.com/questions/360160/mixing-qt-and-boost/695398) –

Trả lời

3

Tôi không nghĩ đó là điều bạn muốn làm. Tín hiệu của Qt được tích hợp sâu trong khuôn khổ và cách chúng được tạo ra và xử lý. Đừng lãng phí thời gian của bạn :)

4

Tôi coi nó là một trong những dự án của tôi. Một khía cạnh có thể làm phiền bạn, tùy thuộc vào dự án là việc sử dụng Qt Designer. Qt-Designer tạo ra các khe cắm tín hiệu bên dưới cho các kết nối GUI của nó. Vì vậy, nếu bạn tình cờ sử dụng nhà thiết kế, bạn sẽ kết thúc với các dự án có cả hai số signals-slotsboost::signals. Có một số vấn đề khi sử dụng chúng cùng nhau f.e. xem this blog. Mặc dù nó có thể cho họ làm việc cùng nhau, tôi sẽ không trộn lẫn hai cách tiếp cận.

Nhưng vấn đề lớn nhất tôi gặp phải là boost::signals không an toàn chỉ trong khi số signal-slot của Qt là! Vì vậy, nó đã được quyết định dễ dàng cho tôi như dự án của tôi đã được đa luồng.

Bạn có thể nhận được những giá trị tương đối và bỏ giá trị của phương pháp chụp bởi tăngQt từ Page-11 của this PDF.

HTH

+7

Boost.Signals2 là chủ đề an toàn. Và tôi không sử dụng Qt Designer, do đó sẽ không có vấn đề gì. – drby

+0

@drby: Còn bạn xây dựng? Có tự động sử dụng macro * MOC * bằng qmake không? Nếu có, bạn có thể phải thay đổi điều đó. Nếu không, sau đó tôi muốn tăng bất cứ lúc nào, đơn giản chỉ vì nó an toàn hơn. Chúc may mắn. – Abhay

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