2016-11-01 6 views
0

.Net 응용 프로그램에 통합해야하는 Qt 위젯을 쓰고 있습니다. this 문서를 사용하여 WPF 용 래퍼 클래스를 작성했습니다. 내가 직면 한 문제는 위젯이 할당 된 전체 공간을 차지하지 않는다는 것입니다. 첨부 된 이미지에서 쉽게 볼 수 있습니다. Qt to .Net 통합 : 크기 조정 문제

.Net resize issue

은 내가 닷넷에서 쉽게 볼 수 내 수업을 유지하고자하기 때문에, COM/액티브 X의 사용을 포함하지 않는이 문제에 대한 간단한 해결책이 궁금해?

+0

본 기사는 네이티브 창 등을 통해 불필요하게 간헐적 인 경로를 제공합니다. 그것은 성능 살인자이며 필요하지 않습니다. Qt는 위젯을'QImage'로 렌더링 할 수 있습니다. WPF 컨트롤에 인터페이스를 연결하기 만하면됩니다. 마찬가지로 WPF 컨트롤의 이벤트를 번역하여 'QWidget'에 전달할 수 있습니다. –

+0

@Kuba 흥미 롭지 만,이 접근법 또한 매우 간접적 인 것처럼 보입니다. –

+0

간접적 인 것은 아니지만, 내부적으로 WPF는 더 많이 또는 덜 똑같은 일을합니다. 현대 UI는 거의 비트 맵으로 렌더링하고 CPU 또는 GPU를 사용하여 비트 맵과 일부 지오메트리를 합성합니다. –

답변

0

작업을 완료하려면 COM 개체와 인터페이스를 사용해야합니다. 기존 응용 프로그램을 임베드하기 위해 양식을 조작해야하므로이를 해결할 방법이 없습니다. MSDN 및 stackoverflow에 관한 많은 정보가 있지만이 구현은 원치 않는 부작용이없는 좋은 통합 된 모양과 느낌이 아닙니다.

임베디드 된 Win32 Qt 응용 프로그램/위젯을 가운데에 맞춘 다음 그에 따라 WPF 컨테이너를 채색 할 수 있지만 여전히 Qt 위젯을 작성하는 중입니다. WPF 및 C#으로 전체 응용 프로그램을 수행하는 것이 좋습니다. Qt 상용 사용을위한 라이선스 비용을 절약 할뿐만 아니라 모양과 느낌이 훨씬 뛰어납니다. WPF를 사용하면 어쨌든 응용 프로그램을 Windows에 의존하게됩니다. C++의 성능상의 이점으로 Qt를 사용한다면 작은 C++ 응용 프로그램을 작성하고 필요한 경우 C# 코드를 통해 실행하십시오.

+0

[이] (http://doc.qt.io/qt-5/activeqt-dotnet.html) 문서는 COM을 사용하는 것으로 만 보이지 않습니다. 자신의 래퍼를 작성하거나 ActiveQt를 사용할지 여부는 선택할 수 있습니다. –

+0

나는 당신이하고 싶은 일과 그 일이 가능하다는 것을 완전히 이해하지만 왜 이것을하고 인생을 어렵게 만들고 싶습니까? 왜 둘 모두 (다른 사람이 할 수있는) 대부분의 다른 기술을 할 수있을 때 완전히 다른 기술을 사용합니까? 나는 웃기 려하지 않고, 나는 단지 당신의 관점을 얻으려고 노력하고 있습니다. – Elmar

+0

.Net 어플리케이션에 Qt 위젯을 포함시키는 것이 얼마나 어려운지와 그 문제가 무엇인지 알아 내야합니다. 내가 필요로하는 것은 Qt 데이터 시각화 모듈의 3D Surface 그래프 시각화입니다. SciChart와 같은 C# 기반 솔루션이 있다는 것을 알고 있지만, 우리의 필요에 맞지 않습니다. 어쨌든 Qt 라이센스를 사려고 생각하고 있으므로이 작은 연구를 수행하도록 요청 받았습니다. –