GTK와 QT의 차이점은 무엇입니까?


29

내가 리눅스를 처음 접할 때 나와 함께 해주세요. 저는 몇 년 동안 Mac 에서 REALbasic로 GUI 프로그램을 작성해 왔습니다. 나는 파이썬을 배우려고 노력하고 있으며 Linux 용 GUI 응용 프로그램을 작성하려고합니다 (주로 우분투와 민트는 내가 액세스 할 수있는 배포판이므로 가장 인기있는 것처럼 보입니다). 기본적으로 세 가지 질문이 있습니다.

  1. GTK와 QT간에 중요한 차이점이 있습니까?
  2. 나는 장난 삼아 생각해했습니다 quicklyGlade우분투 그러나 나는 그들이 GTK 2에 따라이 지금은 사용되지 않습니다 것을 이해합니다. 그 맞습니까?
  3. GUI를 디자인 한 다음 파이썬 코드를 추가 할 수있는 일체형 편집기가 있습니까? (예를 들어, 편집기에서 창에 버튼을 추가하고 버튼을 두 번 클릭 한 다음 버튼을 누를 때 실행할 Python 코드를 추가하십시오)

이것들이 정말로 바보 같은 질문이라면 미안하지만 처음부터 올바른 도구를 배우고 싶습니다.


2
지금은 귀하의 질문에 대답 할 시간이 없지만 무엇을 분명히 할 수 있습니다. Glade는 라이브러리, UI 정의 파일 형식 및 해당 .glade 파일을 만드는 응용 프로그램 모두였습니다. 이제 우리는 Glade 형식이 무엇을했는지에 대해 GtkBuilder를 사용하며, 이는 GTK에 내장되어 있습니다. Glade 응용 프로그램은 GtkBuilder 용 .ui 파일을 만들거나 다른 레이아웃을 테스트하기위한 훌륭한 도구로 사용되며 Glade 3.x는 확실히 Gtk3를 수행합니다.
Dylan McCall

매우 도움이됩니다. 따라서 GTK를 툴킷으로 사용하기로 결정한 경우 Glade를 사용하여 레이아웃을 디자인하고 다른 도구를 사용하여 Pyhton 코드와 UI 디자인을 연결합니다. 맞습니까?
Nootrino

그래, 그 도구는 GTK의 일부이므로 여기에 문서화되어 있습니다. developer.gnome.org/gtk3/3.1/GtkBuilder.html C 문서와 매우 상세하고 PyGObject를 사용할 때 연결합니다 유일한 차이점은 구문입니다. 파이썬에서, 이름과 물건은 다음과 같이 보일 것입니다 : valadoc.org/gtk+-3.0/Gtk.Builder.html
Dylan McCall

답변:


12

나는 미친 방향으로 가지 않고 당신의 질문에 대답하려고 노력할 것입니다.

  1. 둘 다 위젯 라이브러리 임에도 불구하고 상당히 다릅니다. 일반 GTK +는 C를 기반으로하고 QT는 C ++를 기반으로합니다. 바인딩은 거의 모든 프로그래밍 언어에 존재합니다.

  2. GTK2 응용 프로그램이 너무 많더라도 GTK2에 대해 상당히 정확합니다. GTK1과 마찬가지로 GTK2가 한동안 사용되기를 기대합니다. 푸시가 발생하면 GTK2는 더 이상 사용되지 않으며 새로 시작하면 GTK3으로 이동하십시오.

  3. Remeber GTK 및 QT는 위젯 툴킷입니다. 예를 들어 ... Gnome 응용 프로그램에서는 GTK와 Gnome-Libs를 사용하십시오. 원하는 경우 vala를 살펴보십시오. vala는 간단한 것으로 간주되어 vala는 소스-소스를 C로 직접 컴파일하며 많은 프로그래밍 언어에 대한 완전한 바인딩을 가지고 있습니다. Anjuta를보고 싶을 수도 있습니다. 새로운 gtk3 버전이 있는지 확인하십시오. 분명히 해협 PyGTK는 GTK2 만 지원합니다. 모든 Linux DE 라이브러리를 피하려면 QT를 살펴 보는 것이 좋습니다. 일반 QT는 KDE 라이브러리를 포함하는 KDE 응용 프로그램과 다릅니다. QT는 매우 크로스 플랫폼으로 간주되며 * nix 이외의 언어로 컴파일하려는 경우 멋집니다. QT + Python을 시작하려면 PySide (LGPL) 또는 PyQT (GPL)를보십시오. QT에는 qt creator 및 qt-designer와 같은 훌륭한 GUI 빌더가 있습니다.


고마워 Anjuta는 내가 그랬던 것처럼 보입니다. 나는 그것으로 조금 놀아 볼 것입니다. 그것이 옳지 않다면 QT를 살펴볼 것입니다. GTK와 QT 모두 동일한 최종 결과를 달성한다는 사실에 놀랐습니다. 그것은 내가 선호하는 것의 문제 일뿐입니다.
Nootrino

Qt는 단순한 위젯 툴킷 그 이상입니다. STL과 Boost의 큰 덩어리를 복제하는 전체 프레임 워크입니다.
scottl

@ scottl, 나는 QT를 제한하려고하지 않았습니다. QT는 단순한 위젯 이상의 기능을 제공하지만 그와 관련하여 잠재적 솔루션의 일부가되었습니다.
JM Becker

@Nootrino : FLOSS 세계에서 기억해야 할 것은 종종 하나 이상의 확립 된 솔루션이 있다는 것입니다. 많은 사람들이 하나 또는 다른 것을 선택한 이유는 C 대 C ++ 순위를 기반으로합니다. 물론 라이센스는 과거에 큰 역할을했습니다. 많은 언어로 된 다른 프레임 워크가 존재하더라도 일반적으로 한 가지 방법에 더 동의합니다.
JM Becker

@Nootrino : 나는 실제로 도울 수있어서 기쁘다!
JM Becker

5

GTK와 Qt는 오픈 소스 크로스 플랫폼 사용자 인터페이스 툴킷 및 개발 프레임 워크입니다. 이들은 리눅스에서 가장 널리 사용되는 두 가지 프레임 워크입니다. 오픈 소스이기 때문에 개발자에게 그래픽 사용자 인터페이스를 디자인 할 수있는 강력한 툴킷을 제공하기 때문입니다. GTK는 그놈, LXDE 및 Xfce 데스크탑 환경의 표준 툴킷으로 사용되며 Qt는 KDE에 사용됩니다.

C로 코딩하면 GTK +로 갈 것입니다.

C ++로 코딩한다면 Qt로 가십시오.

파이썬으로 코드를 작성하는 경우 GTK +와 Qt 모두 언어에 대한 바인딩이 있습니다. PyGtk, PyQt 및 PySide (Nokia 자체에서 시작한 것)를 참조하십시오.


Python을 사용하는 경우 PyGTK는 더 이상 사용되지 않습니다. 새로운 프로젝트의 경우 PyGObject (우분투 저장소의 python-gobject)를 사용하는 것이 훨씬 나을 것입니다. live.gnome.org/PyGObject PyGObject를 사용하면 추가 레이어없이 Python을 통해 GLib (예 : GTK)로 빌드 된 모든 라이브러리에 연결할 수 있습니다. PyGTK와 매우 유사한 것을 얻을 수 있지만 상당히 다릅니다. 물론 PyGObject는 Python을 통해 GTK3와 대화 할 수있는 유일한 방법입니다.
Dylan McCall

-2

Qt는 주로 KDE에서 사용되고 GTK +는 그놈에서 사용됩니다. 따라서 그놈 용으로 개발하려면 GTK + 라이브러리에 필요한 종속성이 그놈 시스템에 이미 설치되어 있어야하므로 GTK +를 고려하십시오. 최종 사용자는 설치할 필요가 없습니다. GTK + 개발에는 Glade Interface Designer 라는 툴이 있습니다 . 원하는 경우이를 사용하여 사용자 인터페이스를 만들 수 있습니다.


5
QT는 KDE에서만 사용되는 것이 아니라 GTK에서도 사용되는 크로스 플랫폼 툴킷입니다. AND "TXT 사장님 창피"...을 writting 삼가하십시오
열린 우리당 헤레라
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.