2009-03-04 2 views
8

Perl/TK GUI를 사용하는 Windows, Linux 및 Solaris에서 작동하도록 만들어진 응용 프로그램이 있습니다. 제약으로 인해 Perl/TK 에만 국한되며입니다. 또한 이전 Perl/Tk 버전 인 5.00404으로 제한됩니다.Perl 5.004에서 Perl/TK GUI의 모양을 향상시킬 수 있습니까?

나는이 제한 사항 내에서 GUI를 멋지고 현대적으로 만들기 위해 노력하고 싶습니다.

이 작업에서 나를 도울 수있는 TK 설계 방식 (버튼, 프레임, 색상 등)이있는 웹 리소스가 있습니까?

당신이 당신의 Tk 응용 프로그램은 X 기반 시스템에서 좀 예쁘게 것을 발견하는 경우가은을 추가하려고 :


나는 또한 here을 발견 것과 같은 현대화 조언을 찾고 있어요 스크립트의 상단에 줄을 다음

$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*"); 
$mw->optionAdd("*borderWidth", 1); 
+1

앱의 스크린 샷을 제공 할 수 있습니까? 제 경험을 통해 GUI를 멋지게 만드는 것은 위젯 세트에 대한 것보다 디자인에 관한 것입니다 (물론 "멋진"에 대한 정의에 따라 달라질 수 있습니다.) 아마도 우리가 현재 가지고있는 것을 볼 때 우리는 몇 가지 제안을 할 수 있습니다. –

+1

Igor –

+0

Artem : 예, 기존 펄 코드를 최적화했다는 것을 기억합니다. –

답변

5

버튼 요소 대신 이미지를 사용해보십시오. 그러면 원하는 스타일을 가질 수 있고 글꼴을 구울 수 있습니다. 이것은 내용이 동적이지 않은 모든 요소 (창에 배경 등 포함)에서 작동합니다. 그것이 더 많은 일을 할 수는 있지만 문제가 해결됩니다. 특히 프로젝트 그룹에 유능한 아티스트가있는 경우 더욱 그렇습니다.

+0

이것은 가장 우아한 코드 솔루션은 아니지만 실용적입니다. 한 가지주의해야 할 것은 크기 조정입니다. –

+0

우우! 내 첫 번째 현상금! 고맙습니다. – SpliFF

5

당신은 당신의 애플 리케이션 더 나은 외모를 제공하기 위해 Tk theme engine를 사용할 수 있습니다.

+1

Perl 5.004에서 ttk에 액세스 할 수 없으므로 Downvoted입니다. AFAICT 최신 버전의 Tk에서 테마 지원을 사용할 수있는 새로운 바인딩 (Tkx 또는 Tcl :: Tk)에 액세스하려면 적어도 5.6이 필요합니다 . –

+0

엄격히 말하면 true이고, 호환 라이브러리 ("tile")가 있습니다. 8.5 (몇 년 동안 8.5로 작업 해왔음). 파이썬에서 사용할 수 있는지 또는 얼마나 쉬운 지 전혀 모르겠다. –

+1

사용할 수 있는지의 여부와 관련하여 확실하지 않다. 파이썬 이냐 아니냐? – MkV

2

옵션 데이터베이스 을 통해 기본값을 조정하기 위해 optionAdd를 사용하는 것이 합리적입니다. 이것에 대해 스레드에서 찾을 수 있습니다 거기에서

http://tcl.projectforum.com/tk/221

다운로드 griffin.kit, 포장을 벗겨 옵션 설정의 좋은 세트를 얻을 수 griffin.tcl를 찾습니다 SDX 도구를 사용합니다.

http://wiki.tcl.tk/3411 (sdx 도구 용)

+0

Perl/TK 또는 TCL/TK에서만 작동합니까? –

+0

Tcl 용으로 작성되었지만 Perl로 쉽게 번역 할 수 있어야합니다. – Hugge

1

Tk의 테마 엔진 인 Tile은 훨씬 더 예쁘게 보입니다. 그러나 Perl/Tk는 Tk의 발전보다 훨씬 뒤떨어져 있으며 Tile과 다른 발전을 이용할 수 없습니다.

Tkx이 당신을위한 옵션인지 조사해야합니다. Perl/Tk와 완벽하게 호환되지는 않지만 API는 꽤 가깝습니다. Perl과 Tcl/Tk 사이의 다리이므로 Perl로 코딩 된 응용 프로그램 로직을 유지하면서 Tcl/Tk 기능 (Tile과 같은)을 모두 사용할 수 있습니다. ActiveState의 그래픽 유틸리티 중 상당수는 Tkx를 사용하며 꽤 좋은 결과를 제공합니다.
ActiveState PPM http://docs.activestate.com/activeperl/5.8/images/ppm_gui.png

Perl 5.00404는 믿기지 않을 정도로 오래되었습니다. Tkx dist는 Perl ≥ 5.008에 의존한다고 주장합니다. 얼마나 정확한지보기에는 나이가들 정도로 오래된 Perl이 없습니다.

1

Tk :: Entry와 Tk :: Text의 배경이 회색이므로 다음 두 줄을 사용합니다.

$mw->optionAdd('*Entry.background', 'snow1'); 
$mw->optionAdd('*Text.background', 'snow1'); 

'snow1'을 원하는 색상으로 바꿉니다. '# ff9696'과 같은 색상의 16 진수 표현 (RGB)을 사용할 수도 있습니다.

+0

나는이 질문이 얼마나 오래되었는지 깨닫는다 ... – AlexTheBird

+0

[질문의 나이를 걱정하지 마십시오!] (http://xkcd.com/979/). 2 년 후 그리고 여기 당신의 답을 읽고 매우 유용하다는 것을 알았습니다! – Glutanimate