2013-01-22 30 views
5

Tôi có một ứng dụng Qt (chạy trên Linux) được cho là sẽ mở thêm một cửa sổ trên một máy chủ X khác, chạy trên một máy tính từ xa.Có thể một ứng dụng Qt duy nhất mở các cửa sổ trên nhiều màn hình sau đó một màn hình X không?

Có cách nào để thực hiện việc này trong Qt không?

Tôi hy vọng để tránh các thiết lập phức tạp hơn, chẳng hạn như - DMX (ảo X-server trên nhiều máy chủ X khác) http://dmx.sourceforge.net/, hoặc - tạo ra một ứng dụng thứ hai cho cửa sổ thêm, cộng với một số loại thông tin liên lạc giữa hai ứng dụng

+0

Chỉ có thể có một đối tượng 'QApplication' trong chương trình và một' QApplication' chỉ nói đến một 'Chỉ hiển thị'. Đó là một hạn chế cơ bản. Vì vậy, không, bạn không thể làm điều đó trong Qt. –

+0

Cảm ơn, n.-m. đây là điều tôi muốn biết. Tôi không thấy câu trả lời của bạn lúc đầu, bởi vì bạn đã thêm nó làm bình luận thay vì trả lời. Tôi đoán tôi không thể tránh tạo ra một ứng dụng thứ hai. – ygramoel

Trả lời

1

Bạn có thể thử tạo ra một quy trình mới và đặt biến môi trường DISPLAY của nó cho máy chủ X khác.

Hãy thử làm nó từ bash lúc đầu để xem nếu nó hoạt động, bởi vì tôi không hoàn toàn chắc chắn:

export DISPLAY=:0.0 
./my_qt_application 

Thay :0.0 với máy chủ X khác của bạn.

+0

Hoạt động, nhưng không thực sự giải quyết vấn đề: Tôi vẫn sẽ có các quy trình riêng biệt cho hai màn hình và cần triển khai giao tiếp giữa chúng. – ygramoel

+0

Có, tôi đã thấy câu trả lời khác của bạn, nhưng cần một chút thời gian để đọc tài liệu cho QX11EmbedWidget. – ygramoel

+0

Bạn nói đúng, tôi đã xóa nó. Vâng, sau đó sử dụng một quá trình khác sẽ là đặt cược tốt nhất của bạn. Bạn có thể thử bằng cách sử dụng Xlib trực tiếp bằng cách nào đó, nhưng tôi nghi ngờ nó sẽ làm việc, và nó sẽ không được dễ dàng. Tôi không nghĩ rằng có một giải pháp dễ dàng ở đây. – sashoalm

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