
많은 패키지가 GTK 및 QT 버전 모두에서 사용 가능합니다.
- 그들 사이의 차이점은 무엇입니까?
- 성능이나 작업 방식에 차이가 있나요?
답변1
일반적으로 사용자 관점과의 차이는 순전히 외관상의 차이여야 합니다. Qt와 GTK는 테마를 독립적으로 설정하지만(예: qtconfig
또는 를 통해 gtk-chtheme
) 일부 데스크탑 환경에서는 조화를 이룹니다.
GNU/Linux는 전자가 더 일반적으로 사용된다는 점에서 Qt보다 GTK 지향적인 경향이 있으므로 선택의 여지가 있을 때 이를 선호할 수 있습니다. 자체 응용 프로그램에 Qt를 사용하는 KDE에서는 예외가 있습니다. 비록 이러한 요소 중 어느 것도 그다지 중요하지는 않습니다.
더 중요한 문제는 RAM이 매우 제한된 상황(1/4GB 미만)에서 발생합니다. 이 경우 시스템이 GTK만을 사용하기를 원할 것입니다.또는Qt이지만 둘 다는 아닙니다. 그러나 기가바이트의 메모리를 갖춘 대부분의 최신 데스크탑에서는 이는 문제가 되지 않습니다. 두 가지를 모두 광범위하게 사용하면 50-100MB의 추가 비용이 발생할 수 있습니다.
여전히 널리 사용되지만 이전 버전과 호환되지 않는 GTK(2 및 3)와 Qt(3 및 4)의 서로 다른 버전도 있습니다(따라서 Qt 3 애플리케이션은 Qt 4 라이브러리를 사용할 수 없습니다). 그러나 두 버전이 동시에 시스템에 존재할 수 있으며 이로 인해 발생하는 가장 심각한 결과는 혼란을 야기하고 메모리를 조금 더 팽창시킬 가능성이 있다는 것입니다.
답변2
아니요, 해당 프로그램의 내부 구조에는 차이가 없습니다. GTK와 Qt는 사용자 인터페이스 툴킷이자 프레임워크입니다. 개발자가 그래픽 인터페이스를 디자인하는 데 사용하는 라이브러리입니다.
그래픽(GUI) 프로그램이 작성되면 먼저 핵심 내부가 개발됩니다. 이것이 프로그램을 실행하게 만드는 것입니다. 당신은 결코보다핵심은 단순히 백그라운드에서 실행됩니다. 이 핵심 위에 사용자 인터페이스(UI)가 설계되었습니다.
이제 개발자는 처음부터 전체 인터페이스를 디자인하거나 다른 사람이 만든 디자인을 재사용할 수 있습니다. 디자인을 재사용하는 것은 큰 장점이 있습니다. 이를 통해 컴퓨터의 모든 프로그램이 비슷하게 보이도록 할 수 있습니다. 따라서 그들은 GUI 툴킷을 사용합니다. GTK와 Qt는 매우 일반적인 두 가지 GUI 툴킷입니다.
GTK는 GNOME의 표준 툴킷이고 Qt는 KDE에서 사용됩니다. 사용자 입장에서는 겉모습만 다를 뿐입니다. 프로그램의 핵심은 동일하게 유지됩니다.
답변3
고려해야 할 또 다른 중요한 측면은 Qt 라이센스입니다.라이선스 공개 링크이는 대부분의 비영리 프로젝트에서 무료로 사용할 수 있도록 명시적으로 설정되어 있지만 상업적 관계가 가능하며 해당 경우 제한이 있을 수 있습니다. GTK는 다음과 같은 경우에도 자유롭게 사용할 수 있다고 명시적으로 명시합니다.소유권애플리케이션GTK 문:
Are there any licensing restrictions?
GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
복잡한 GUI 개발의 주요 측면은 GLADE를 설계 키트로 사용하고 이것이 귀하의 접근 방식에 적합한지 여부에 달려 있습니다.글레이드 링크. 크로스 플랫폼을 목표로 하지만 Qt만큼 광범위하게 지원되는 크로스 플랫폼은 아닐 수도 있습니다.
답변4
각각의 객체 모델을 어떻게 비교하고 C++ 표준을 얼마나 밀접하게 따르는지 - 제한된 경험에 비추어 볼 때 QT는 코드 생성기에 대해 약간 해킹된 것처럼 보였고 기능적으로 동등한 클래스를 사용하여 휠을 재발명했습니다. 문자열과 클래스. 간단히 말해서 QT에는 더 많은 휘파람 소리와 종소리가 있는 것 같았고 많은 사람들이 유용하다고 생각했지만 무겁고 독점적인 느낌도 있는 것 같았습니다. 내가 말했듯이, 나는 그것에 대한 경험이 제한적이었습니다(그리고 Gtk에 대해서는 훨씬 더 적었습니다). C++ 표준(예: STL, C++ 문자열, 스레드 등)을 사용하려는 것에 대한 일반적인 접근 방식을 선호하는 개발자의 관점에서 오늘 비교하는 방법에 대한 몇 가지 의견을 듣고 싶습니다.