2011-12-06 1 views
1

현재 Qt를 사용하여 미디어 플레이어를 개발 중입니다. 필요한 공통 기능 중 하나는 전체 화면을 전환 할 수 있어야한다는 것입니다.Qt를 사용하여 개발 된 미디어 플레이어에서 전체 화면 전환

렌더링 캔버스는 본질적으로 QGLWidget (하위 클래스)입니다. 이 미디어 플레이어의 기본 창인 응용 프로그램 창에 추가됩니다. 렌더링 캔버스 외에도 응용 프로그램 창에는 도구 모음, 상태 표시 줄 및 기타 작은 위젯이 있습니다. 구현하고자하는 전체 화면은 렌더링 위젯이 다른 위젯이 보이지 않고 전체 화면을 차지하도록 만드는 것입니다. 그 동안 키를 눌러 이벤트를 트리거 할 수 있습니다.

렌더링 캔버스의 부모를 0으로 재설정하고 showFullScreen() 함수를 호출 해 보았습니다. 그리고 응용 프로그램 창에서 hide()를 호출했습니다. 그러면 캔버스가 전체 화면을 차지하게됩니다. 그러나 응용 프로그램이 키 누르기 이벤트를 가져 오지는 않습니다. 결과적으로 정상으로 돌아갈 수 없습니다. 또한 캔버스 배경이 흑백으로 깜박입니다 (기본 배경은 흰색 임).

어쨌든, 내가 시도한 방식이 이것을 구현하는 가장 좋은 방법이라고 생각하지 않습니다. 다시 정상으로 전환하면 복잡한 보육이 진행될 것입니다. 그리고 piexl 값 (원본은 원시)을 보는 것과 같이 전체 화면으로 수행되는 동안 수행해야 할 작업이 있기 때문에 전체 응용 프로그램을 관리하기가 어려워집니다.

누구나 전체 화면을 전환하는 더 좋은 방법을 제안 할 수 있습니까?

답변

0

어떤 버전을 사용하고 있습니까?

테스트해야 할 해결책을 제안합니다. 전체 화면으로 표시하려면 내용을 복사 해보십시오 (비디오가 위젯에 있으면 새 QWidget을 열고 내용을 새 위젯에 복사 함). 이론적으로 동일한 내용의 2 개의 위젯이 있습니다. ,하지만 당신은 아무것도 숨기거나 크기를 줄여서는 안됩니다. 그것이 효과가 있는지 알려주세요.

둘째,이 게시물을보고, 유용 할 수있다 :

마침내 다시 읽고, 당신이 놓칠 수있는 일 :/ http://doc.qt.io/qt-5/qwidget.html#showFullScreen

내가 오해했는지 또는 무엇인가 (그리고 무엇이) 도움이되었는지 말해주십시오.

+0

당신의 제안이 저에게 의미가 있다고 생각합니다. 내 애플 리케이션에서 이것을 구현하려고합니다. 어떻게 일이 진행되는지 알려 드리겠습니다. – Scrathis

+0

제안한 방법을 사용하여 전체 화면 토글 링을 구현했습니다. 그것은 지금까지 잘 작동합니다. 대단히 감사합니다. @ Max13 – Scrathis