1

私は tcl/tk の経験が豊富ですが、大規模なプロジェクトではスクリプト言語を取り除きたいと考えています。しかし、tk キャンバスには非常に大きな機能があり、これを優れた GUI ツールキットに置き換える必要があります。

必要な機能の 1 つは、アクティブなグラフィカル オブジェクトを作成できるキャンバスです。たとえば、tk で次のようにマウスをドラッグして移動できる円があります。

    #!/usr/bin/wish8.5

    canvas .c
    pack .c
    set item [.c create oval 10 10 20 20] 

    .c bind $item <Any-Enter> ".c itemconfig current -fill red"
    .c bind $item <Any-Leave> ".c itemconfig current -fill blue"

    bind .c <ButtonPress-1> "setlast %x %y"
    bind .c <B1-Motion> "moveit %x %y"

    set lastx 0
    set lasty 0

    proc setlast { x y } { 
        global lastx
        global lasty
        set lastx $x
        set lasty $y
    }   

    proc moveit { x y } { 
        global lastx
        global lasty
        .c move current [expr $x-$lastx] [expr $y-$lasty]
        set lastx $x
        set lasty $y
    }

私が見つけた他のどのツールキットも、これには多くの手作り作業が必要です。通常、キャンバス上のどのアイテムがマウスの下にあるかを自分で見つけなければなりません。これは、ポリゴンのような複雑な形状の場合、非常に大量の作業になります。

4

2 に答える 2

1

GTK+ または QT を試しましたか? QT はほとんどが開発用のプラットフォームであり、GUI ライブラリではありませんが、試してみることもできます。

于 2012-11-30T11:03:04.927 に答える
1

C++/Tkを試しましたが、そのパスを残しました。Tk のすべてをサポートしているわけではありません。たとえば、ノートブックやツリーリストなどの注目のウィジェットがサポートされていないか、コマンドにパラメーターを渡すことができません。さらに、実装は非常に複雑で、何かが期待どおりに機能しない場合、デバッグが困難になります。1 週間の問題解決に苛立った私は、C++/Tk を捨てることにしました。

C++/Tk を終了し、Qtに入ります (「かわいい」と言うべきですが、少しばかげているので、「キュー ティー」と言います)。商用ライセンスとオープン ソース ライセンスがあり、活発な開発が行われており、多くの例で十分に文書化されており、ほとんどのデスクトップおよびモバイル OS をサポートしており、wiki とブログによる活発なコミュニティがあります。 GUI やグラフィックスなど、マルチメディア、ネットワーク、SQL、テストなどに使用できるその他のモジュールがあります。

QT の開発は 1991 年に開始されたため (そして、しばらくの間 Nokia の一部でした)、「古い」部分がいくつかあり、新しいものに置き換えられていますが、Microsoft とは対照的に、ドキュメントはこれについてより明確です。また、Microsoft とは対照的に、テクノロジのセット全体が一貫しています。

C++ との統合には、次の 2 つの方法があります。

  1. MSVS と QT アドインを使用します。私はそれを試みましたが、それを本来のように機能させることができませんでした。もっと試してみるべきだったかもしれませんが、2日間試した後、私はそれで十分でした.
  2. インストールした C++ コンパイラを使用する QT IDE を使用します。これはうまく機能し、それが私が今やっている方法です。欠点は、編集時のエラー チェックが MSVS ほど強力ではないことです。ただし、無料版の MSVS を使用すると、64 ビット用にもコンパイルできるという利点があります。

GUI を作成する場合は、Qt を検討する必要があります。

于 2015-09-29T12:56:24.480 に答える