Mozilla Firefox 및 Ubuntu Software Center와 같은 응용 프로그램은 제목 표시 줄 그라디언트를 도구 모음 영역으로 확장 할 수 있습니다. 예는 다음과 같습니다Ubuntu Unity에서 확장 된 제목 표시 줄을 얻으려면 어떻게해야합니까?
어떻게 내 응용 프로그램에서 동일한 효과를 얻을 수 있습니까?
Mozilla Firefox 및 Ubuntu Software Center와 같은 응용 프로그램은 제목 표시 줄 그라디언트를 도구 모음 영역으로 확장 할 수 있습니다. 예는 다음과 같습니다Ubuntu Unity에서 확장 된 제목 표시 줄을 얻으려면 어떻게해야합니까?
어떻게 내 응용 프로그램에서 동일한 효과를 얻을 수 있습니까?
먼저 언급 한 두 가지 응용 프로그램은 서로 다른 툴킷과 기술을 사용하여 만들어 졌으므로 기꺼이 수행하려는 여러 가지 방법을 사용합니다. Firefox는 XUL/GTK2
을 사용하지만 USC는 GTK3
을 사용합니다. 두 가지 접근법을 모두 설명하겠습니다.
우분투 소프트웨어 센터는 GTK3
를 사용하여 구축하고, 따라서 도구 모음 구배가 테마 CSS 파일에 정의되어 있습니다. 이를 달성 코드는 사용자의 gtk3 응용 프로그램에서이를 사용하기 위해서는
/* primary-toolbar */
.primary-toolbar,
.primary-toolbar .toolbar,
.primary-toolbar.toolbar {
-GtkWidget-window-dragging: true;
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (@dark_bg_color, 0.96)),
to (shade (@dark_bg_color, 1.4)));
border-bottom-color: shade (@dark_bg_color, 1.1);
border-top-color: shade (@dark_bg_color, 1.09);
border-style: solid;
border-width: 1px 0 1px 0;
color: @dark_fg_color;
text-shadow: 0 -1px shade (@dark_bg_color, 0.7);
box-shadow: inset 0 1px shade (@dark_bg_color, 0.94);
}
, 당신은 당신의 도구 모음에 클래스 primary-toolbar
를 지정해야합니다. 이에 대한 적절한 문서를 보려면 here을 확인하십시오.
Firefox는 XUL을 사용하여 빌드되고 GTK2를 사용하여 Ubuntu와 같은 GNU/Linux 배포판에서 위젯을 렌더링합니다. Firefox의 tab-bar
에 대한 스타일은 해당 테마의 파일 gtkrc
에 정의 된대로 모양 정의 menubar
에서 비롯됩니다. 기본 테마 주변 환경의 경우, 다른 방법과 다른 툴킷의 효과를 얻을 수있다
style "menubar" = "dark" {
engine "murrine" {
textstyle = 2
text_shade = 0.33
gradient_shades = {1.0, 1.0, 1.0, 1.0}
lightborder_shade = 1.0
}
}
이지만, 기본 사용하기 위해 당신이 gtk3에서 응용 프로그램을 작성하는 것이 좋습니다 스타일링.
Qt를 사용하고 있습니다. GTK로 호출하여 적절한 색상을 검색 할 수있는 방법이 있습니까? –
Unity와 같은'gtk' 환경에서 실행될 때, Qt는 현재'gtk2' 테마를 사용하여 위젯을 렌더링하는'Qgtkstyle'이라는 테마 렌더러를 사용합니다. 애플리케이션 내에서'GtkStyleContext'를 사용하려고하면 동일한 프로세스 내에서 gtk2와 gtk3를 실행할 수 없다는 오류가 발생합니다. 나는 이것을 발견했다 [link] (http://stackoverflow.com/questions/7903518/gtk3-getting-a-styles-class-property). 비록 그다지 알려주지는 않지만 사용할 수있는 솔루션을 암시하지만, 전체 애플리케이션의 스타일을 수동으로 지정해야합니다. –
이 작업을 수행 할 수도 있습니다. 응용 프로그램의 초기화 전에 자식 프로세스를 생성하고이를 사용하여 GtkStyleContext를 통해 속성을 가져옵니다. 그런 다음이 속성을 사용하여 툴바에 대한 사용자 정의 스타일을 그립니다. Qt에서 실제로이 작업을 수행 할 수 있는지는 알 수 없습니다. 단지 야생 일뿐입니다. –
같은 색상의 툴바에서 그라디언트를 만드시겠습니까? – Linuxios
유니티 태그는 Microsoft Unity 용입니다. 오용하지 마십시오. –