Điều bạn đang yêu cầu là không thể làm theo cách bạn tưởng tượng. openUrl() sử dụng hệ điều hành để chỉ định chương trình để mở đối số như được đề cập trong tài liệu của nó.
Có thể có một số giải pháp, nhưng không cách nào trong số chúng hoạt động tốt hoặc hoạt động trên tất cả các trình duyệt. Nó chỉ là loại kiểm soát hạt mịn này có khả năng là không thể đối với bạn.
Nếu bạn muốn kiểm soát tab trong trình duyệt, bạn có thể tìm thấy cửa sổ được biểu thị bằng tab đó và đóng cửa sổ đó ngay trước khi mở tab mới. Giải pháp này là loại hacky.
Một giải pháp khác là tìm HWND của hộp chỉnh sửa đang giữ URL, và thử thay đổi văn bản của nó bằng cách sử dụng SendMessage()
. Tuy nhiên, tính năng này sẽ không hoạt động trên Chrome vì nó không sử dụng điều khiển riêng cho cửa sổ URL. Nó có thể hoạt động trên Firefox hoặc IE.
Giải pháp tốt hơn là làm cho trình duyệt web của riêng bạn mà bạn kiểm soát bằng cách sử dụng Qt WebKit. Nó là khá dễ dàng để render một trang trong đó và thay đổi url được xem. QWebView là cách triển khai dễ sử dụng của QtWebKit.
Hi Elwood, bạn đã bao giờ tìm thấy một giải pháp cho điều này? Tôi có cùng một vấn đề chính xác: http://stackoverflow.com/questions/15116760/open-a-web-page-from-a-desktop-app-repeatedly-in-same-window – sipi
Sipickles: Xin lỗi, không. Có vẻ như nó là không thể. Tôi đã suy nghĩ về việc tạo một tệp HTML cục bộ với '' trong đó và sau đó ghi đè tệp này theo yêu cầu. Nhưng tôi đã không thử điều đó và cách tiếp cận này có thể có một số nhược điểm. – Elwood
Tôi đang tìm kiếm cùng một thứ (mở trong cùng một tab) nhưng tốt nhất là trong Qt5. Nhưng tôi cũng sẽ có một giải pháp Qt4. – amenthes