2014-12-27 3 views
3

here에 설명 된대로 GTK # 2.12를 사용하고 있습니다.Mono (Linux)를 사용하여 시스템 트레이 아이콘을 표시하는 방법은 무엇입니까?

그러나 투명도가있는 PNG 이미지를 사용할 때 KDE는 이미지의 투명 부분을 다시 그리기를 원하지 않습니다. 따라서 이미지의 투명한 부분에 이전 비트 맵 (패널 막대 아님)이 표시됩니다.

GTK # 자체 내에 버그가있을 수 있습니다. 그래서 모노를 사용하여 시스템 트레이 아이콘을 표시하는 새로운 방법을 찾고 있습니다. 어쩌면 QSystemTrayIcon의 일부 라이브러리가이를 수행 할 수 있습니다. 이상적으로는 크로스 플랫폼이어야합니다. Windows에서는 표시해야합니다.

또는 Linux 버전의 플랫폼 호출을 구현할 수 있습니다 (최선의 선택 일 수 있음). 하지만 제게 몇 가지 예를 들면 ... Qt 및 Linux에서의 플랫폼 호출에 대해 새로운 것입니다.

+0

왜 그냥 사용하지 않는' 트레이 = 새로운 QSystemTrayIcon (this); tray-> setIcon (QIcon (":/gui/logo.png"));/* ... * /; 트레이 -> 쇼();'? – lpapp

+0

Mono, GTK #의 의미를 아십니까? C#을 사용하지 않고이 응용 프로그램을 빌드 할 수 있도록 코드가 필요합니다. – Maxim

+0

예, 저는 약 8 년 전에 모노를 사용 했었는데, 왜 모노가 필요할까요? 나는 네가하지 않는다는 말은 아니지만 정당화를 요구하고있다. – lpapp

답변

1

사용하려는 버전이 매우 오래된 버전이므로 gtk 버전을 업데이트해야한다고 생각합니다. 그것은 Qt 3 정도를 사용하는 것과 같습니다. 10 년 전에도 괜찮 았어. 그러한 기본 기능을 위해 오래 전에 버그가 수정되었을 가능성이 큽니다.

고대 소프트웨어를 고수하고 싶다면 여기에 Qt 래퍼 솔루션이 있습니다.

KDE에서 QYoto 그 정도 더 이상 유지되지 않습니다,하지만 여전히 아마도 래퍼 중 최선의 선택, 그래서 여기에 대한 예제 코드를 간다 :

using Qyoto; 

class Program { 
    public static void Main(string[] args) { 
     new QApplication(args); 
     var tray = new QSystemTrayIcon(this); 
     tray.SetIcon(new QIcon(":/gui/logo.png")); 
     ... 
     tray.Show(); 
     QApplication.Exec(); 
    } 
} 
+0

Mono 용 QSystemTrayIcon은 어디서 구할 수 있습니까? – Maxim

+0

QYoto를 설치하기 만하면됩니다. – lpapp

+0

어디에서 다운로드 할 수 있습니까? QSystemTrayIcon을 사용하는 방법을 알고 있습니다. 나는 그것으로 어셈블리를 얻는 방법을 모른다. – Maxim