問題タブ [gtkd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
824 参照

user-interface - GTK+ でのキー押下の処理 (gtkD)

私はgtkD(GTK +のDバインディング)で遊んでいます

windowオブジェクト、インスタンスがありgtk.MainWindowます。キープレスを処理したい。

  • どのように?
  • 特殊キー (矢印キー、pgup/pgdn など) はどのように扱うのですか?

PSこれらの種類の質問はGoogleなどで回答できることは知っていますが、stackoverflowで「より単純な」質問をたくさん見たので、質問しても問題ないと思いました.

さらに、基本的なことがドキュメントのページの下に埋もれがちな場合があります。

0 投票する
3 に答える
732 参照

gtk - Dでは、空の文字列を渡す方法は? (gtkD へ)

フォボスでの D1 の使用

のテキスト入力フィールド、インスタンスがありますgtk.Entry.Entry

を呼び出すとsetText("")実行時エラーが発生します

なんで?Dに問題があるようです、私はこれを試しました:

アサーションが失敗したため、プログラムは終了しました。

どうすればこれを回避できますか?

0 投票する
1 に答える
1654 参照

user-interface - gtkD: 最小限の描画例?

私はかなり経験豊富なプログラマーですが、GUI プログラミングは初めてです。DFL 用に作成したプロット ライブラリを gtkD に移植しようとしていますが、図面が表示されません。次のコードは、空白のウィンドウを生成します。誰かが何が問題なのか教えてください、および/またはに数行を取得しDrawingAreaて結果を表示するための最小限のサンプルコードを投稿できMainWindowますか?

0 投票する
2 に答える
1274 参照

user-interface - GTK:「ディスプレイを開けません」というエラーを無視するには?

私は D プログラミング言語の gtkD バインディングを使用していくつかの GTK プログラムを作成しました。これはコンソール アプリですが、画面にプロットを表示してファイルに保存することができます。コンソールベースの SSH アクセスしかできないマシンでこれらを実行したいと思います。つまり、プロットは画面に表示されず、ファイルに書き込まれます。

Main.init() を呼び出すと、Gtk-WARNING **: cannot open display, as expected. が表示されます。代わりに Main.initCheck() を呼び出してエラーを無視すると、後で画面が表示されないことに関連するエラーがさらに発生します。

利用可能な画面がないという事実をプログラムに無視させ、画面上のすべての描画をダミーデバイス (/dev/null に相当するグラフィックス) に実行させ、それでも実際に Pixmaps と Pixbufs に描画させる簡単な方法はありますか?プロットをファイルに保存する)、アプリの非 GUI ベースの部分を実行しますか?

編集: アプリがウィンドウを起動し、イベント ループでブロックする場合、理想的な方法は、ウィンドウをすぐに閉じて (または最初に開くことができなかった場合)、非 GUI ベースの部分を実行し続けることです。プログラムの。これが不可能な場合は、ウィンドウを起動しないようにすることで回避できます。

また、Pixbufs と Pixmaps は画面がないと機能しないようです。Main.checkInit() を呼び出してエラーを無視するか、init ステートメントを使用せずに、いずれかの方法で GTK が画面の欠如について不平を言う。

0 投票する
0 に答える
1066 参照

windows - DLL 地獄: SnacNp64.dll + gtkD

Symantec Endpoint Protection がインストールされ、ネットワーク ドライブがマップされている Win64 システムで gtkD を使用して作成した 32 ビット アプリを実行し、ファイル ダイアログを表示しようとすると、ランタイムの何かが SnacNp64.dll、64 ビットをロードしようとするようです。 DLL、32 ビット アドレス空間に。この DLL はネットワーク関連に使用される Symantec Endpoint Protection のコンポーネントであるため、このエラーは非常に限られた状況でのみ発生します。

Win64 ネイティブ コンソールからプログラムを実行し、ファイル ダイアログを読み込もうとすると、次のようになります。

イメージ ファイル C:\Program Files (x86)\Symantec\Symantec Endpoint Protection\SnacNp64.dll は有効ですが、現在のマシン以外のマシン タイプ用です。[OK] を選択して続行するか、[キャンセル] を選択して DLL のロードを失敗させます。

キャンセルを選択すると、すべて正常に動作し、プログラムは DLL の読み込みに失敗しても悪影響を受けないようです。[OK] を選択すると、おそらく gtkD が 64 ビット DLL を 32 ビット プログラムにロードしようとするため、アクセス違反が発生します。

ただし、ネイティブの Win64 ターミナルではなく Cygwin ターミナルから実行すると、Cygwin コンソールがエラーをキャッチして DLL を強制的にロードし、アプリケーションがクラッシュするようです。

このエラーは、同じマシン上の GIMP などの他の 32 ビット GTK ベースのアプリでは発生しないようです。

基本的に、どのような状況でも 32 ビット アプリが 64 ビット DLL を読み込もうとしないようにするにはどうすればよいでしょうか?

0 投票する
2 に答える
1130 参照

d - Ubuntu 10.04 で動作する D2.x ツールチェーン (gtkd を使用) をセットアップする

私は数日間 D をいじっており、gtkd を動作させようとするまで、かなり興奮していました。私は今、機能するセットアップを取得しようとして 3 日間の大部分を無駄にしており、少し意気消沈し始めています (読んだ; ずっと前に取得しました)。諦める前に誰か助けてくれませんか。私がオンラインで見つけることができる情報の多くは古くなっているので、これが可能であると考えることが正しいかどうかさえわかりません.

残りの部分は、私がこれまでに試したことに関するものであり、簡単な解決策があれば読む必要はないかもしれません。

最初に知っておく必要があるのは、タンゴが実際に D2.0 で使用できるかどうかです。当初はそうではなかったと思いますが、現在 D2.x では、タンゴとフォボを一緒に使用できるようになっています。これが真実でない場合、私は最初のハードルで落ちたと思います。これは初心者ではありません。

これまでに行った手順。

  1. ubuntuリポジトリからgdcをインストールしました
  2. リポジトリからlibtango-headersをインストールしました(注、ヘッダーのみ、利用可能なライブラリがないため、あまり役に立ちません)
  3. 手動で dsss をインストールしました

このセットアップは D をコンパイルしますが、gtkd を (dsss を使用して) インストールしようとするとコンパイルされましたが、それを使用して何かをコンパイルしようとすると、(タンゴに関連する) あらゆる種類のエラーが発生しました。まあ、私が言及したように、私はライブラリを持っていなかったので、これは予想外ではなかったはずです. 私は手動で tango libs をインストールしようとしましたが、まだエラーが山積みで、最終的にはdsss net install tangophobos に戻れないという警告に頼りました (私が言及したように私を混乱させた何かお互いに一緒に使用できます)とにかく、私は続行し、セットアップを完全に台無しにしました. 私は今Dをコンパイルできませんでした。

申し訳ありませんが、最後のセクションでどのようなエラーが発生したかを明確にすることはできませんでした。正直なところ、覚えていません。

とにかく、インストールしたものをすべて削除しました。そして、新たに始めました。

  1. リポジトリから gdc をインストールしました
  2. dsss を手動でインストールしました

最新の tango は gdc で動作しないことを読みました (これが正しいかどうかはわかりません)。

  1. dmdのdebを入手してインストールしました。
  2. 最新の tango (ライブラリとヘッダー) を手動でインストールしました。
  3. dsss で gtkd をインストール

現在、dsss に dmd を認識させることができないため、gdc のみを使用できます。ただし、タンゴは見つかりません。dmd を直接使用すると、tango と gtkd が検出volatileされますが、非推奨のステートメントに関するエラーが発生します。D2.x ではどうやら真実であり、「タンゴもサポートされている」ということを思い出させてくれます。

まあ、私は混乱しています!

【ここにジャンプ】

作業セットアップをセットアップする方法について、順を追って説明してくれる人がいれば、私は永遠に感謝します!

ありがとう、T.

アップデート: 「私たちはそこにいます!」

そこで、 http: //www.digitalmars.com/d/download.html から dmd.2.049.zip をダウンロードし、ホーム ディレクトリに展開してexport PATH = $PATH:~/dmd2/linux/bin(dsimcha のおかげで) 実行しました。

を忘れましdsssた。http://www.dsource.org/projects/gtkd/wiki/UsingSubversionの指示に従って、gtkd の svn バージョンを取得しました。GNUmakefileプレフィックスを に変更するように編集し/home/me/dmd2/linuxmake install.

~/dmd2/linux/bin/dmd.confインクルードパスが含まれるように編集されました../include(gtkDライブラリが配置され../libているため、ライブラリパスを編集する必要はありませんでした)。

最後に gtkD でコンパイルするには、libgtkd と libdl にリンクする必要がありました。これはdmd mydprog.d -L-lgtkd -L-ldl(jpf に感謝します) によって行われました。

0 投票する
4 に答える
1649 参照

d - gtkd を始める

私は D が初めてで、gtkd を試してみたいと思っています。私は Arch Linux を使用しており、dmd2-complete(dmd 2.0.56) およびgtkd-svn(D2 に対してビルドされた gtkd) パッケージをインストールしました。また、D 自体が正常に動作していることも確認しました (基本的なwritefln("hello world");プログラムをコンパイルして実行しました)。

現在、gtkd を起動して実行しようとしていますが、サンプルから基本的な helloworld プログラムをコンパイルしてリンクするのに非常に苦労しています。

具体的には、これをリンクさせるために dmd に渡す必要があるオプションは何ですか? 私が見つけることができるほとんどすべてのドキュメントは、これを完全にスキップしています。

gtkd-svnパッケージは /usr/lib に以下をインストールしました:

0 投票する
1 に答える
273 参照

multithreading - gtkD を使用したマルチスレッド アプリケーション

私はしばらくの間 gtkD で遊んでいて、並行して D2/Phobos を学んでいます。昨日、std.concurrency モジュールを調べておもちゃのマルチスレッド フラクタル ビューアを作成しようとしましたが、問題は、マルチスレッドが gtkD で動作する方法がわからないことです。

今、私はこれを持っています:

Andrei の本では、同時実行の章で、私が適用したいメッセージ パッシング パラダイムがありますが、問題は gtk メイン ループが私から隠されていることです。上記のコードは好きではありません。共有されていないコードにキャストするのは見苦しく、安全でない可能性が高いからです。「スレッドに依存しない」クラスを継承してスレッド対応にする方法はありますか?マルチスレッドアプリケーションをプログラムするためのgtkDの標準メカニズムは何ですか? gthread.Thread モジュールを見てきましたが、その役割は、外部 C gtk+ スレッド機能へのインターフェースとしてのみのようです。

0 投票する
1 に答える
397 参照

performance - Gtk/GtkD ウィンドウのサイズ変更時にマウス ボタンのリリースを検出しますか?

GtkD (Gtk の D バインディング) で作成したプロット ライブラリを改善しようとしています。点が多い散布図は、サイズ変更に時間がかかります。ユーザーがウィンドウの端をドラッグしてサイズを変更している間に、ピクセル化を許可して画像を再スケーリングし、マウスボタンが離されたときにのみ再レンダリングしたいと考えています。

ウィンドウのサイズが変更されているときに、ユーザーがまだマウス ボタンを押したままウィンドウの端をドラッグしているかどうかを検出する API はありますか? GtkD に慣れていない場合でも、C Gtk API に関する回答をいただければ幸いです。

0 投票する
5 に答える
1213 参照

windows-7 - Win7 と dmd (D2) で gtkD を使用するには?

ダウンロードして、いくつかのディレクトリgtkD-1.5.1に解凍しました。gtkD次に何をしますか?それをコンパイルしていくつかのライブラリにリンクする必要があるのか​​ 、それともコード内でリンクする必要があるのか​​ わかりません。


編集: (@dsimcha)

dsss buildgtkD main dirのコマンドは私にこれを与えました:

libが作成されていませんか?