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


29

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

  1. GTK와 QT간에 중요한 차이점이 있습니까?
  2. 나는 장난 삼아 생각해했습니다 quickly및 Glade우분투 그러나 나는 그들이 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.