2012-11-02 2 views
5

내 Qt 애플리케이션에서 동일한 브라우저 탭/창에 URL을 반복해서 열어보고 싶습니다. (종류 프로그래밍 "상쾌한"이 탭의)특정 브라우저 탭/창에서 URL 열기

QDesktopServices::openUrl(QUrl("http://www.domain.tld")); 

를 사용하여 호출 할 때마다 새 탭/창을 엽니 다. "target ="매개 변수를 어딘가에 추가 할 수 있습니까?

+0

안녕 엘우드 찾아 다시로드거야? http://stackoverflow.com/questions/15116760/open-a-web-page-from-a-desktop-app-repeatedly-in-same-window – sipi

+0

Sipickles : 나는 똑같은 문제가 아니, 죄송합니다. 그것은 단지 불가능한 것 같습니다. 나는 '로 로컬 HTML 파일을 생성 한 다음 필요에 따라이 파일을 덮어 쓸 것을 고려하고 있었다. 그러나 나는 아직 시도하지 않았으며 아마도이 접근법에는 몇 가지 단점이 있습니다. – Elwood

+0

동일한 탭 (동일한 탭에서 열림)을 선호하지만 Qt5를 선호합니다. 하지만 Qt4 솔루션도 사용할 것입니다. – amenthes

답변

2

은 당신은 무엇을 요구하는 것은 당신이 상상하는 방식으로 수행하는 것은 불가능합니다. openUrl()은 운영 체제를 사용하여 설명서에서 언급 한 것처럼 인수를 여는 프로그램을 지정합니다.

가 일부 해결 될 수도 있지만 그들 중 누구도 잘 작동하지 않거나 모든 브라우저에서 작동합니다. 이런 종류의 세분화 된 제어가 불가능할 수도 있습니다. 브라우저에서 탭의 컨트롤을 원하는 경우에

해당 탭으로 표시 창을 발견하고 바로 새를 열기 전에 닫습니다 수 있습니다. 이 솔루션은 일종의 해커입니다.

또 다른 해키 솔루션은 편집 상자의 HWND가 URL을 보유하고 SendMessage()를 사용하여 텍스트를 변경하려고 찾는 것입니다. 그러나 URL 창에 별도의 컨트롤을 사용하지 않으므로 Chrome에서는 작동하지 않습니다. Firefox 또는 IE에서 작동합니다.

더 나은 솔루션은 Qt는 웹킷을 사용을 제어 자신의 웹 브라우저를 만드는 것입니다. 페이지를 렌더링하고 보았던 URL을 변경하는 것은 꽤 쉽습니다. QWebViewQtWebKit의 사용하기 쉬운 구현입니다.

당신은 웹 페이지를 열 수와 활성 탭을 다시로드 :

+0

감사합니다 phyatt. QtWebKit을 사용하여 기존 브라우저 기능을 복제하고 싶지는 않습니다. – Elwood

0

은 아마 당신이 유용한 발견 할 것이다. 인수로 브라우저의 이름을 제공하면

, 당신이 지금까지이 문제를 해결하기위한 방안을 찾았어요, 현재 페이지

https://unix.stackexchange.com/questions/37258/refresh-reload-active-browser-tab-from-command-line

+0

그것은 흥미있는 테이크이지만, 내가 염두에 두었던 것이 아니다. 우선, 나는'xdotool'에 의존하기 때문에 여러 플랫폼에서 사용할 수 없습니다. – amenthes