12

新しいWindows7タスクバー機能のいくつかをPyQtアプリケーションに統合するための情報を探しています。

具体的には、新しい進行状況インジケーター(ここを参照)とクイックリンク(www.petri.co.il/wp-content/uploads/new_win7_taskbar_features_8.gif)を使用する可能性がすでに存在する場合。

誰かがいくつかのリンクまたは単に「まだ実装されていない」を提供できれば、私は非常に感謝します。

どうもありがとう。

4

3 に答える 3

23

クォークが言ったように、機能は Qt 4.5 にはありませんが、Windows API を Qt から直接呼び出すことができます。ちょっとした作業ですが。

  1. 新しいタスクバー API は COM を介して公開されるため、 ctypes.windll は使用できません。関数にアクセスするには、.tlb ファイルを作成する必要があります。このフォーラムの投稿または Windows SDK からITaskbarList のインターフェイス定義を取得します。たとえば TaskbarLib.idl という名前のファイルに保存します。

  2. .tlb ファイルを作成します。おそらく Windows SDK が必要になるか、別の場所から IDL コンパイラを入手します。

    midl TaskbarLib.idl /tlb TaskbarLib.tlb
    
  3. .tlb をロードします (Python 用の Win32 拡張が必要です。http://python.net/crew/skippy/win32/Downloads.html ):

    import comtypes.client as cc
    cc.GetModule("TaskbarLib.tlb")
    
  4. TaskbarList オブジェクトを作成します。プログレス バーを設定する関数は、インターフェイス ITaskbarList3 にあります。

    import comtypes.gen.TaskbarLib as tbl
    taskbar = cc.CreateObject(
        "{56FDF344-FD6D-11d0-958A-006097C9A090}",
        interface=tbl.ITaskbarList3)
    
  5. これで、API 関数を呼び出すことができます。

    taskbar.HrInit()
    taskbar.SetProgressValue(self.winId(),40,100)
    

完全なスクリプト例を次に示します。ソース: 1 2

于 2009-11-16T20:00:05.790 に答える
5

すべての Windows 7 タスクバー拡張機能を実装する Qt アドオンがあります。それはQ7Goodiesと呼ばれます。PyQt バインディングが付属しているため、おそらくこれが PyQt で Windows 7 の機能を利用する最も簡単な方法です。

于 2010-09-08T17:55:47.920 に答える
3

Qt 4.5 では実装されていませんが、Qt 4.6では実装されています。PyQt は、Qt 4.6 が正式にリリースされるまで 4.6 をラップしませんが、4.6 スナップショットを試したり、 Qt リポジトリをチェックアウトして、C++ バージョンが必要な機能をサポートしているかどうかを確認したりできます。そうであれば、PyQt 4.6 でもサポートされます。

追加: 4.6 の機能のリストには明示的な Windows 7 のサポートは示されていませんが、それはあなたが望むものを持っていないという意味ではありません。ウィジェット。

于 2009-11-15T03:04:59.347 に答える