問題タブ [gtk3]

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 投票する
2 に答える
2379 参照

ubuntu - Valaはgtk+-3.0Ubuntu12.04を見つけることができません

私は(Ubuntu 12.04で)Valaを学び始めたばかりで、このチュートリアルに従おうとしています。ただし、最初のコンパイルステップ(valac --pkg gtk+-3.0 gtktut.vala)で、次のエラーが発生します。

error: gtk+-3.0 not found in specified Vala API directories or GObject-Introspection GIR directories

GTK3 .vapiファイルがない(ディレクトリにない)ことを意味する場合を除いて、インターネット上でこれに関する情報を見つけることができないようです/usr/share/vala/vapi。しかし、それが私の問題の原因であるとしても、この神話上のファイルをどこにダウンロードすればよいのかわかりません。おそらく、valaコンパイラのインストールに含まれているはずです。

繰り返しになりますが、コンパイル言語に関しては完全な初心者であり、答えを見つけるために最善を尽くしました。

valacに必要なgtk3パッケージを指定するにはどうすればよいですか?

アップデート:

私はにgtk+-3.0.vapi存在することを発見しました/usr/share/vala-0.16/vapi; ただし、まだ見つかりません。何か案は?

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

python - pygobject、glade、gtk3に移行する場合は、エントリコンボボックスを使用してください

私は3か月からgladeとpygtkを使ってPythonで開発していますが、それに慣れる前でさえ、それはすでに時代遅れでした。

Archlinuxを使用すると、私のシステムは常に最新の状態になっているため、gtk2に比べて機能が少し不足していることに気付いたとしても、gtk3を使用せざるを得ません。

そこで、pygobjectに切り替えることにしました。残念ながら、ドキュメントは完全ではありません。

グレイドファイルとPythonコードを新しいシステムに正常にアップグレードしましたが、1つのエラーが発生します。

私のプログラムの1つに、エントリのあるコンボボックスがあります。コンボボックスから選択されたか、ユーザーが入力したかに関係なく、get_active_text()メソッドを呼び出してエントリのコンテンツを取得するために使用します。

このメソッドはもう存在しないので(エラーが発生したためだと思います)、代わりにこれを使用します:

ご覧のとおり、古いコードにはコメントが付いています。

このコードは機能しますが、奇妙な問題があります。エントリを使用できません。

コンボボックスからテキストを選択できますが、エントリが使用できません。選択はできますが、入力できません。

これは、どこかでアクティブ化する必要がある新しい動作ですか?プログラムのgtk2バージョンでは、問題はありません。

これが私の空き地ファイルのコンボボックスエントリを説明する部分です:

テキストを含むgchararrayタイプの1つの列を持つリストストアを作成しました。セルはGtkCellRendererによってレンダリングされます(ただし、cellrendererのプロパティ "text"は定義されていません。これを0(gchararray)に定義すると、テキストが2回取得されるためです!)

エントリバッファを追加すると役立つと思いましたが、何も変わりません。

編集:私は解決策を見つけました:埋め込みエントリのcan_focusはfalseでした。これで、エントリバッファを必要とせずに機能します。

これを投稿する前に解決策を見つけましたが、他のユーザーにもこの問題が発生した場合に備えて投稿します。

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

python - GTK3とpythonで画像としてSVG srcを描画するには?

私のコードは次のようになります:

これを使用できるように、gtk3ウィンドウに画像として表示するにはどうすればよいですか?

私の悪い英語ですみません:)

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

python-3.x - PyGobject で GtkLayout を動的にサイズ変更する

占有できるスペースの量に応じて、GtkLayout のコンテンツを自動的に「ズームして合わせる」方法を探しています。

これが私の解決策です:

残念ながら、これにより、ウィンドウのサイズが変更されるたびに draw() が 2 回呼び出されます。これは、実際にレイアウトに何かを描画する必要がある場合に時間がかかります。

この問題の正しい解決策は何ですか?

敬具、
ファビアン・ヘンツェ

解決策:少し前に解決策を見つけました。それは私のプロジェクトのここここにあります。そこから最小限の例を抽出する時間がありません。誰かがそれをやりたいと思っているなら、私はそれを答えとして喜んで受け入れます.

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

python - Python で Gtk3 GtkTreeRowReference を使用する方法

GtkTreeRowReference()成功せずにGtk3 の関数を呼び出そうとしています。ListStore関連する TreeView の選択セットを MULTIPLE モードに設定して、複数のレコードを削除しようとしています。TreeRowReference選択で指定されたアイテムごとに保存し、ListStoreそれらを使用してアイテムを削除したいListStoreのは、選択で以前に到達したListStoreアイテムが削除されると、これらのパスが更新されるはずだからです。私はTreeRowReferencesPyGtk 2 での使用に関する多くの参照を見つけました。PyGObject のチュートリアルはそれらの使用について言及していますが、実際の例は示していません。私はGtkTreeRowReference()成功せずに呼び出すために多くの方法を試しました。例えば:

この致命的なエラー メッセージが生成されます:"TypeError: function takes at most 0 arguments (2 given)"プログラムが行にヒットしたときGtk.TreeRowReference。選択行には既に への参照が含まれているListStoreため、選択行のみを引数として再試行しましたが、関数がまだ 0 引数を主張していて、1 引数を渡そうとしたという苦情がありました。

私も次のようなことを試しました:

"AttributeError: 'ListStore' object has no attribute 'GtkTreeRowReference'."これらの努力により、Pythonは呼び出しを Varying に変更することについて不平を言うようTreeRowReferenceになり、 Gtk_TreeRowReference他のいくつかのバリエーションでも同じエラー メッセージが生成されました。

Gtk.TreeRowReferencePyGObject/Gtk3 での使用方法について手がかりを教えてもらえますか? 比較的新しく経験の浅い Python プログラマーであり、Gtk も初めて使用するので、息を呑むほど明白な何かを見落としていることは間違いありませんが、インターネットで何度も検索した後でも困惑しています。

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

python - ウィジェットのサイズリクエストを削除します(Python、Gtk3)

ラベルにテキストを収めたい。私はほとんどそれを行うことができました:ウィンドウを拡大するとき、私<big>はラベルにいくつかのタグを追加し、テキストはウィンドウとともに拡大します。しかし、ウィンドウを縮小しようとすると、ラベルのサイズ要求ではそれができません。

ラベルは1秒間に何度も更新されるため、新しいラベルを適用するたびにカスタムサイズのリクエストを設定しようとすると、ウィンドウを縮小しようとするとウィンドウが縮小および拡大します。

私がやりたいのは、ワードラップやその他のことをせずに、サイズ要求を削除することです。ラベルをウィンドウから外したいだけです。

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

python - python Gtk.Clipboard.get()gtk3の戻り値が異なります

Gtk.Clipboard.get()の戻り値をutf-8に変換したいと思います。

gtk3

選択したテキストがASCII文字のみを保持している場合にのみ機能しますが、国別文字(フランス語/ドイツ語など)がある場合は、text.encode(..)関数からエラーが発生します:UnicodeDecodeError:'ascii'コーデックはバイトをデコードできません位置1の0xc3:順序が範囲内にありません(128)

問題がどこにあり、gtk3バージョンを機能させる方法を知っていますか?

これは、gtk2のgtk.clipboard_get()関数を使用すると正しく機能します。

よろしくお願いします

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

gtk - Valaでgtk3ボーダーを取得するには?

Vala に GTK3 Window オブジェクトがあり、その Border 構造体を取得する必要があります。

http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Border

どうやってするの?これは Gtk3 で大きく変わりました。ありがとう

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

gtk3 - Gtk3 アドレス バー ウィジェット

Gtk3 のアドレス バーの既知の実装はありますか? iPhone や Android の電子メール クライアントで、既に指定されているアドレスがボタンに変換されるようなものを探しています。

編集:現在、gtk-3.4 向けに開発中です。以下のマイクによって提案された GtkLinkBut​​ton は有望に思えますが、それを GtkEditable に追加して、たとえばバックスペースボタンで削除したり、テキストを前後に挿入したりする方法はありますか?

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

c - GtkFileChooserDialog gtk_file_chooser_get_filename()は、ファイル名が入力されていてもnullを返しますか?

私はC言語を使用してGlade3インターフェースに取り組んでいます。

これまでのところ、ユーザーがファイルを保存する場所を選択する場所が2つあります。参照ボタンをクリックすると開くGtkFileChooserDialogがあります。そのダイアログで[保存]をクリックすると、[参照]ボタンの横にあったGtkEntryがいっぱいになります。

最初にファイルを選択したときは機能しますが、2回目gtk_file_chooser_get_filename()は、ダイアログに何かを入力しても何も返されません。

ソースコードの簡略版を次に示しますが、まだ問題があります:http: //paste.ubuntu.com/1032567/およびそれに対応するGlade3インターフェイスファイル:http: //paste.ubuntu.com/1032572/

このような設定でUIに2つの場所があります。それらの両方で起こります。私には2つの異なるコールバック関数があります。1つはそれを正しく行うための古い試みであり、もう1つは私の最新の試みです。どちらも機能しませんが、新しいものは、返されるものがnullであるかどうかを確認するため、segfaultingを回避します。

新しいコールバックはon_button5_clicked()古いものon_button3_clickedです。

参照を確認しましたが、ファイル名を選択しているのにnullポインターが返される理由については何もわかりませんでした。

どんな助けでも大歓迎です。(私はヘッドバンギングの段階にいるような気がします)。

編集:それで、私は試すべきことについてさらにいくつかのアイデアを持っていました。まず、ダイアログを表示する代わりに、FileChooserウィジェットを使用して独自のウィンドウを作成してみました。これは、gtk_Dialog_Run呼び出しでダイアログが実行されないという問題が発生していないことを確認するために行いました。また、ファイル名文字列へのポインタがnullでないかどうかを確認するコードを繰り返してみました。同じコールバック呼び出しで2回実行されると、null以外の文字列ポインタが返されます。また、ダイアログが起動されるウィンドウ(実際には、gtk_widget_show()ED)自体がダイアログであるという事実とは関係がないことを確認するためにこれを行いました。

ダイアログのボタンをgtk.RESPONSE_OKまたはgtk_RESPONSE_CANCEL応答を持つように設定する必要があるという私の理論を試しました。それは何の効果もなかったようです。