Gần đây tôi đã di chuyển dự án Qt của mình từ Linux sang Vista và bây giờ tôi đang gỡ lỗi một cách mù quáng.Ứng dụng GUI Qt: cảnh báo nếu QObject :: connect() không thành công?
Trên Linux, nếu QObject :: connect() không thành công trong bản dựng gỡ lỗi, tôi nhận được thông báo cảnh báo trên stderr. Trên Windows, không có đầu ra console cho các ứng dụng GUI, chỉ có một cuộc gọi OutputDebugString.
Tôi đã cài đặt DebugView và thiết bị này bắt đầu độc đáo qDebug() của riêng bạn, nhưng vẫn không có cảnh báo về tín hiệu không thành công.
Một giải pháp có thể là sử dụng tính năng tự động hoàn thành của QtCreator cho các tín hiệu, nhưng tôi thích Eclipse và sử dụng cả hai là PITA. Bất kỳ ý tưởng nào về cách nhận thông tin tín hiệu/thời điểm trong thời gian chạy?
Chỉnh sửa: Tôi vừa nhận ra connect() trả về bool, giải quyết vấn đề trước mắt, xấu xí vì có thể. Tuy nhiên, điều này không giải quyết được các trường hợp mà QMetaObject::connectSlotsByName() không thành công và thao tác này sẽ tự động chạy với các tiện ích con.
Điều này thực sự hữu ích! – Pepe