본문 바로가기

오픈소스 읽기 (OLD)20

3-4. CSS로 어플리케이션 꾸미기 앱 개발에서 디자인은 정말 중요한 요소이다. 때로는 앱의 본질적인 기능, 성능보다도 디자인이 우선시 되는 경우들이 종종 있는 것 같다. Gtk4 역시 개발자들의 디자인을 돕기 위한 강력한 기능을 제공한다. 2016년에 Gtk에는 중대한 변경점이 있었다. 기존 Gtk(당시는 Gtk3)는 테마를 통해서 어플리케이션의 디자인을 변경했었다. 테마는 데스크탑 전체 어플리케이션에 적용되기 때문에, 데스크탑의 통일성을 유지하는데 용이했다. 하지만 개별 어플리케이션 입장에서는 자기만의 특별한 디자인을 적용하기는 어려웠다. 이에 Gtk에서 찾은 해결책이 Css를 사용한 앱 디자인이다. 이번 포스트에서는 어떻게 CSS를 사용해서 Gtk 앱을 디자인 하는지 다룬다. 관련 블로그: blog.gtk.org/tag/css/ 3... 2021. 4. 24.
3-3. WYSIWYG로 UI 구성하기 - Glade 현재 시점(2021.04.24)에서는 Glade가 Gtk4를 지원하지 않는다. (Gtk3까지만 지원) WYSIWYG는 What You See Is What You Get의 준말로, 말 그대로 화면에 표시되는 모습을 그래도 결과물로 얻을 수 있는 것을 의미한다. 대표적인 WYSIWYG 프로그램으로 MS오피스 제품군이 있다. Gtk에서도 Glade를 사용하면 WYSIWYG로 UI를 구성할 수 있다. Glade는 Gnome 재단에서 공식적으로 지원하는 UI 개발 툴이다. 3.3.1 간단한 Glade 사용법 Glade 사용법을 설명하기에 앞서 고백할 것이 있다. 나는 Glade를 잘 사용하기 못한다. 물론 UI 틀을 구성할 때는 대안이 없기 때문에 Glade를 사용하기는 하지만, 기초적인 기능 외에는 잘 사용하.. 2021. 4. 21.
3-2. 간단한 어플리케이션 만들기 (Container) 앞선 포스트에서는 윈도우에 하나의 위젯을 배치하는 방법에 대해서 살펴보았다. 그런데 우리가 사용하는 대부분의 어플리케이션은 여러개의 위젯으로 구성되어 있다. 이처럼 윈도우에 여러개의 위젯을 배치하고 싶을 때 사용하는 위젯이 Container이다. Container 위젯들은 여러개의 자식 위젯들을 가질 수 있으며, 위젯에 따라서 다양한 유형으로 자식 위젯들을 보여준다. 이번 포스트에서는 가장 많이 사용되는 Container 위젯들인 GtkBox, GtkGrid, GtkNotebook에 대해서 다룬다. 3.2.1 한 줄로 줄세울때는 - Box Box는 수평 혹은 수직으로 연속된 방향으로 위젯을 배치할 수 있게 해주는 Conatiner이다. 다음 코드와 결과물을 보면서 Box가 어떻게 사용되는지 알아보자. /.. 2021. 4. 20.
3-1. 간단한 어플리케이션 만들기 (Window, Label, Button) 앞으로 약 3개정도의 포스트를 통해서 Gtk4 프로그래밍 기초에 대해서 다루려고 한다. 기본적인 내용 구성은 많은 부분을 Gtk4 공식 튜토리얼 문서(developer.gnome.org/gtk4/stable/gtk-getting-started.html)에서 가져오되, 내가 생각하기에 보완이 필요한 부분은 내용을 보충하고, 불필요한 내용은 쳐내면서 내용을 재구성할 예정이다. 3.1.1 간단한 앱 그리기 Gtk의 첫 시작으로 창 하나를 띄우는 간단한 앱을 제작하려한다. 이번 절에서는 Gtk 어플리케이션이 가지는 기본적인 구조와, 시그널과 콜백 함수를 사용하는 기본적인 방법에 대해서 살펴볼 예정이다. 그리고 GtkWindow 위젯(혹은 GtkApplicationWindow 위젯)의 속성을 관리하는 방법에 대해.. 2021. 4. 18.
2. Gtk 프로그래밍 개념 잡기 www.kernelpanic.kr/category/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4%20%EC%9D%BD%EA%B8%B0/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C%20%EA%B0%80%EC%9E%A5%20OOO%ED%95%9C%20GUI%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%20-%20GTK '오픈소스 읽기/리눅스에서 가장 OOO한 GUI 라이브러리 - GTK' 카테고리의 글 목록 www.kernelpanic.kr 2020년 12월 16일에 Gtk4가 릴리즈 되었다. 기존 Gtk3 대비 눈에 띄는 큰 변화 대신, 최적화와 GPU 가속을 통한 성능 향상과, 몇 가지 위젯 추가 등의 변화.. 2021. 4. 17.
1. GTK란 무엇인가? www.kernelpanic.kr/category/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4%20%EC%9D%BD%EA%B8%B0/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C%20%EA%B0%80%EC%9E%A5%20OOO%ED%95%9C%20GUI%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%20-%20GTK '오픈소스 읽기/리눅스에서 가장 OOO한 GUI 라이브러리 - GTK' 카테고리의 글 목록 www.kernelpanic.kr 1.1 GTK란? 왜 GTK인가? GTK(Gimp ToolKit)은 리눅스에서 GUI를 다루기 위한 가장 대표적인 라이브러리 중 하나이다. 대표적으로 최근 우분투에서 기본으.. 2021. 4. 15.
번외. 주요 D-Bus 프로토콜 스펙들 위 이미지는 리눅스 그놈 데스크탑에서 파이어폭스 브라우저로 유투브를 재생하는 모습이다. 그런데 한 가지 신기한게 있다. 상단 드롭다운 메뉴에 현재 재생하는 영상을 정지하거나 다음/이전 영상 재생을 할 수 있는 컨트롤 패널이 생겼다. 그놈 데스크탑과 파이어폭스는 완전히 다른 두 앱이지만, 서로간의 커넥션이 이뤄진 것이다. 파이어폭스만 그럴까? vlc, totem, lollypop 등 리눅스에서 사용 가능한 대부분의 미디어 플레이어로 영상을 재생하면, 그놈 데스크탑에는 파이어폭스와 동일한 컨프롤 패널이 생성된다. 그놈 데스크탑이 그 많은 미디어 플레이어들과 협업을 해서, 커넥션을 형성한 것일까? 그렇다면 누군가 새로운 미디어 플레이어를 개발한다면, 그놈 데스크탑은 커넥션을 형성하기 위해 새로운 작업을 해야 .. 2021. 4. 13.
2. D-Bus 사용방법 www.kernelpanic.kr/category/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4%20%EC%9D%BD%EA%B8%B0/%EB%AA%A8%EB%8D%98%20IPC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20-%20D-Bus '오픈소스 읽기/모던 IPC 시스템 - D-Bus' 카테고리의 글 목록 www.kernelpanic.kr 2.1 D-Bus 라이브러리들 어플리케이션 입장에서는 D-Bus는 사용 규약만 지킨다면, 언어 / 라이브러리와 무관하게 동일한 동작을 수행한다. 따라서 D-Bus는 다양한 언어로 구현이 되어 있으며, 동일한 언어에서도 다양한 라이브러리들이 있다. 대표적으로 D-Bus를 사용하기 위한 라이브러리들은 다음과 같다. 라이브러리 지원 언어.. 2021. 4. 11.
1. D-Bus 기초 www.kernelpanic.kr/category/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4%20%EC%9D%BD%EA%B8%B0/%EB%AA%A8%EB%8D%98%20IPC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20-%20D-Bus '오픈소스 읽기/모던 IPC 시스템 - D-Bus' 카테고리의 글 목록 www.kernelpanic.kr 1.1 D-Bus란? 컴퓨터 세상에는 다양한 개발자들이 개발한 수 많은 앱들이 있다. 안드로이드를 예로 들어보자. 우리는 유투브로 마음에 드는 영상을 "공유" 버튼을 클릭해서 카카오톡으로 친구에게 공유한다. 친구가 공유받은 영상을 보던 중에 스카이프 영상통화가 오면, 영상통화를 하는 중에 유투브는 자동으로 정지된다. 유투브와 카카오.. 2021. 3. 27.