TkInter와 관련된 글들은 대체로 아래 주소에서 참고하여 작성할 듯 합니다.
http://infohost.nmt.edu/tcc/help/pubs/tkinter/index.html

먼저, python의 내장 GUI 라이브러리은 TkInter를 이용한 가장 간단한 예제

대충 인터넷 돌아봐도 TkInter로 HellowWorld 만드는 몇가지 방법이 있는 것 같지만, 이게 그나마 단순한 편에 속하는 것 같다.
App이라고 하는 class를 하나 만들고 __init__을 해주는데 이 때 Tk() 객체를 넘겨받을 수 있게 만들었다.
이 객체로부터 frame을 만들고 frame을 먼저 pack을 통해 root에 밀어넣는다.
Label은 frame의 자식으로 생성하는데 옵션으로 text만을 주었고 역시 pack을 통해 frame에 밀어넣었다.


허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.

'프로그래밍 언어 > <Python>' 카테고리의 다른 글

[wxPython 예제] 2. layout  (0) 2010.08.18
[TkInter 예제]2. Frame과 Layout  (2) 2010.08.18
[TkInter 예제]1. Hello World  (0) 2010.08.18
[wxPython]1. 첫번째 예제  (0) 2010.08.17
[wxPython] 0. 설치하기  (0) 2010.08.17
파이썬 Tk의 option_readfile('optionDB')  (0) 2010.07.06
참고: http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/wxpython_%C7%C1%B7%CE%B1%D7%B7%A1
%B9%D6

wxPython 예제 1 (리눅스)

조인C의 예제를 그대로 가져왔습니다.

아직 내용은 이해가 안가지만 하나씩 간단한 예제를 만들어보기에 앞서 구글링을 통해 얻은 예제입니다.
wxWidget을 공부하려다 말았는데 Windows API가 많이 생각나는 군요 ;;

앞으로 wxPython과 관련된 내용들은 http://www.zetcode.com/wxpython/ 을 많이 참고할 것 같습니다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
임의 순서의 값이 필요해 아래와 같은 함수를 작성해보았습니다.

0 부터 19까지 숫자를 임의 순서로 배치하는 예제입니다.


'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (1) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10

sample용 이미지는 저작권 문제를 몰라 첨부시키지 않았습니다.



'Open Source > Cairo & Skia' 카테고리의 다른 글

[SKIA] SkHello  (0) 2011.02.09
Cairo 1.10.0 릴리즈  (0) 2010.09.08
[예제] Cairo/Gtk+ 이미지 출력하는 예제  (0) 2010.07.21
cairo 1.9.8 스냅샷 요약  (0) 2010.07.14
[CAIRO/GTK] Checker 패턴 예제  (0) 2010.07.12
[CAIRO/GTK] 뼈대  (0) 2010.07.12
glut를 이용해 파란 화면을 띄워주는 예제(리눅스)


컴파일하는 방법(리눅스)
먼저 glut를 설치되어 있어야 합니다.
apt-get install freeglut3-dev

gcc ex1.c `pkg-config --cflags --libs gl glu` -lglut

허접한 글이지만, 도움이 되신다면 아래 손가락 꾹 눌러주세요.

'Open Source > OpenGL / GLES' 카테고리의 다른 글

[예제] openGL - 1  (0) 2010.07.21
TextSwitcher 는 Text를 변경하는데 사용하는 View입니다.
Text를 변경할 때 효과를 줄 수 있다는 장점이 있습니다.

다음 예제는 Apidemos에 나온 것과 동일한 내용을 다룹니다.
다른 점은 ApiDemos는 버튼에 반응하지만, 이 예제는 TextSwitcher를 한번 클릭할 때 반응합니다.

1. 기본 프로젝트를 생성합니다.
2. main.xml의 내용을 아래와 같이 수정합니다.

3. 소스 파일을 열고 아래와 같이 코딩합니다.

timeSwitcher.setFactory(this); 라는 문장은 매우 중요합니다.
이게 없으면  java.lang.NullPointerException 가 발생합니다.
setFactory를 추가하면 ViewFactory를 구현할 것을 요구합니다.

여기에 추가하는 View를 이용해 TextView를 생성하는 것 같습니다.

ps> 이런게 있는 줄 알았다면 좀 더 쉽게 만들었을 것을 이라고 뒤늦게 후회해보고 있습니다.
CAIRO/GTK 예제들
1. 인터넷 간단한 예제
2. 뼈대 앱
3. Checker


cairo_image_surface를 이용해 4칸짜리 checker를 만들고, 이것을 cairo_patter_t를 통해 확장 가능하게 하여 화면에 뿌리는 예제


'Open Source > Cairo & Skia' 카테고리의 다른 글

Cairo 1.10.0 릴리즈  (0) 2010.09.08
[예제] Cairo/Gtk+ 이미지 출력하는 예제  (0) 2010.07.21
cairo 1.9.8 스냅샷 요약  (0) 2010.07.14
[CAIRO/GTK] Checker 패턴 예제  (0) 2010.07.12
[CAIRO/GTK] 뼈대  (0) 2010.07.12
[CAIRO/GTK]간단한 cairo 예제  (0) 2010.07.08
CAIRO/GTK 예제들
1. 인터넷 간단한 예제
2. 뼈대 앱
3. Checker



1번 예제를 바탕으로 기본 CAIRO 공부를 위해 사용하게 될 아무것도 하지 않는 기본 코드로 핑크색 다이얼로그를 띄우는 예제이다.

허접한 글이지만, 도움이 되신다면 아래 손가락 꾹 눌러주세요.

'Open Source > Cairo & Skia' 카테고리의 다른 글

Cairo 1.10.0 릴리즈  (0) 2010.09.08
[예제] Cairo/Gtk+ 이미지 출력하는 예제  (0) 2010.07.21
cairo 1.9.8 스냅샷 요약  (0) 2010.07.14
[CAIRO/GTK] Checker 패턴 예제  (0) 2010.07.12
[CAIRO/GTK] 뼈대  (0) 2010.07.12
[CAIRO/GTK]간단한 cairo 예제  (0) 2010.07.08
CAIRO/GTK 예제들
1. 인터넷 간단한 예제
2. 뼈대 앱
3. Checker

출처 : http://fredmorcos.blogspot.com/2007/02/little-cgtkcairo-example.html



빌드는 아래와 같이 수행한다.
gcc alphademo.c -o alphademo `pkg-config --libs --cflags gtk+-2.0 cairo`

당연히 리눅스용이며, gtk와 cairo가 설치되어 있어야 한다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.

'Open Source > Cairo & Skia' 카테고리의 다른 글

Cairo 1.10.0 릴리즈  (0) 2010.09.08
[예제] Cairo/Gtk+ 이미지 출력하는 예제  (0) 2010.07.21
cairo 1.9.8 스냅샷 요약  (0) 2010.07.14
[CAIRO/GTK] Checker 패턴 예제  (0) 2010.07.12
[CAIRO/GTK] 뼈대  (0) 2010.07.12
[CAIRO/GTK]간단한 cairo 예제  (0) 2010.07.08
출처 : http://psjin14.tistory.com/entry/AndroidGallery%EC%97%90-Image-%EC%B6%94%EA%B0%80-%ED%95%98%EA%B8%B0
ps> 예섬아, 이렇게 해도 되는 설정을 해놓고 있단다. CCL도 꼭 신경써서 보도록 하렴
약간의 코멘트 덧붙임
ps2> 궁금한 내용 있으시면 질문 주시면 답변 드립니다.

아래는 예섬이 장장 2시간 동안 적은 글 ㅋㅋ
근데 글자가 너무 많아서 읽기가 싫어진다 ;;
역시 난 소스 보는게 좋은 것 같다.

내가 Gallery에서 필요한 기능은 다음과 같다.
 Gallery 요구사항
  (1) Gallery에 내가 원하는 Image 추가하기
  (2) 사용자의 선택으로 인해, Gallery 중앙에 최정적으로 표시된 Image가 무엇인지 알기
    Ex>  Finger Flick을 하는 경우, Flick이 완료 될 때 화면에 선택된 Image 알기

이 2가지 요구사항을 만족할 수 있는 예제를 인터넷에서 찾았으니, 찾을 수가 없었다.

대신, Android Developer Guide에서 Hello, Gallery라는 예제를 찾았으나 !!

이런.. 그대로 작성하면, Error가 나거나 System이 오동작을 한다. ㅜ.ㅜ
  * Hello, Gallery url : http://developer.android.com/guide/tutorials/views/hello-gallery.html

몇 가지 시행착오 후,  요구사항을 만족할 수 있는 Android Code를 작성하였다.
 요구사항을 만족하여, 실행된 화면
 
  > Linear Layout에 Gallery와 Text View를 추가하였다.
> Gallery 상에서 Image의 위치를 표시하기 위해, Text View를 추가하였다.

(1) Layout으로 사용할 xml 파일 만들기
 파일명 : layout > my_gallery.xml
 

특별히 관계없는 기타 팁
  1)  Gallery에 Image View를 추가하지 않아도 된다.
     * Gallery에 Image를 추가하는 것은 Code 상에서 할 예정이다.

  2) Fling의 결과로 선택된 Image 위치(Position)를 알기 위해서, Text View를 추가하였다.

  3) Linear Layout의 default orientation은 horizontal이다.
     => 그러므로, 꼭 orientation을 vertical로 명시해 주자.
       -> 그렇지 않으면, Text View가 화면에 표시되지 않을 것이다.

(2) 실행화면의 각 Image에서 보이는 테두리 속성용 value 파일 만들기
 파일명 : values > gallery_attri.xml
 


(3) Activity 클래스 작성하기
 파일명 : src > ActMyGallery.java
 

  1) android.app.Activity를 Super Class로 지정하여, Class를 생성하자.

  2) OnCreate 함수를 Override하자.
       (a) 이 Activity가 실행될 때의 Layout을 설정하기 위해, setContentView 함수를 호출한다.
       (b) Gallery에 Image 추가 및 Image에 대한 정보를 알 수 있도록, Adapter를 설정해 준다.
            - Gallery 클래스의 setAdapter 함수 이용
            * ImageAdapter는 미작성 클래스임. 그래서 setAdapter 라인을 추가하는 순간, Error가 날 것이다

(4) ImageAdapter 클래스 추가하기
 파일명 : src > ActMyGallery.java
 

  1) BaseAdapter를 Super Class로 하는 Class를 작성한다.
    => 단, Activity 클래스 내에 작성해야 한다.
     -> 그렇지 않으면, 몇몇 함수들은 정의되지 않았다고 Error가 발생할 것이다.
    (꼭 그럴 필요는 없음)
  2) Gallery에 추가할 Image들을 res/drawable 폴더에 추가한다.

  3) 위 소스 코드의 핵심 함수는 getView가 되겠다.
    =>이 함수는 Gallery의 위치에 있는 Image View를 반환하는 함수이다.
      -> 이 함수에서, 각 Position에서 보여야 할 Image에 대한 설정을 해 주고 있다.
        (a) ImageView.setImageResource()
            : Image Resource ID를 설정하여, ImageView에서 표시 할 Image를 설정하고 있음

        (b) ImageView.setLayoutPrarms(new Gallery.LayoutParams(150, 100)
            : 150은 width이고, 100은 height임

        (c) ImageView.setScaleType(ImageView.ScaleType.FIT_XY)
           : Imae가 150X100에 맞도록, Scale을 조정함

       (d) ImageView.setBackgroudnResource(background)
          : 실행된 화면에서, 각각의 ImageView에 회색 테두리가 보이도록 함

  4) 생성자에 있는 아래 항목들은 이미 (2)번에서 작성한 내용들이다.
      - R.styleable.Theme
      - R.styleable.Theme_android_galleryItemBackground

  5) 수행하면, 1번째 요구사항이 만족된 것을 확인할 수 있음

(5) 2번째 요구사항을 만족하기 위해, onCreate 함수 수정
 파일명 : src > ActMyGallery.java
 onCreate 함수 안에 안의 내용을 추가하였음
  1) setOnItemSelectedListener 함수를 이용하면, 2번째 요구사항을 만족할 수 있다.
    => 정확히는 OnItemSelectedListener.onItemSelected() 이지만..
      -> 해당 함수의 3번째 인자로 들어오는 Int는 Galley 상의 Image 위치이다.
      -> 그래서 position value를 TextView에 표시되도록 설정하고 있다. [TexvView.setText() 이용]

  2) 주석 처리된 부분을 해제하면, 사용자가 Click(정확히는 Push)한 Image를 알 수 있다.
   * Hello, Gallery 예제에는 setOnItemClickListner 함수가 있음.
     => 그러나 내가 원한 것은 Press 할 때 클릭된 Image 정보가 아니다.
     => 요구사항은 Release할 때, 표시될 Image 정보이다.
      -> 그래서, 해당 소스를 주석처리하였다.
이상!!

허접한 글이지만, 도움이 되신다면 아래 손가락 꾹 눌러주세요.

+ Recent posts