GTK+プログラミングat LINUX
GTK+プログラミング - 暇つぶし2ch700:login:Penguin
11/10/04 05:43:43.88 OMJjY+ZZ
>>700
ちょちょと換えてみたから見てみて
URLリンク(www1.axfc.net)
devhelpってヘルプビューア入れて GtkButtonの説明読むのおすすめ
「The "clicked" signal」 てとこにclickedシグナルハンドラのシグネチャが書いてあるよ
>>699が元々書いてたハンドラとシグネチャが一致してなかったみたい

それと初回クリック時の画像ファイルインデックスは0番じゃなくて1番にしといた

701:login:Penguin
11/10/04 05:45:48.43 OMJjY+ZZ
指示レス番まちがえたけど  訂正しねーよ!(我が家杉山)

702:login:Penguin
11/10/04 12:32:09.76 VseFFwAj
>>700
動きました、どうもすいません

703:login:Penguin
11/10/04 22:44:16.96 OMJjY+ZZ
謝る必要はこれっぽっちもないけど
「動けばいい」とかいう低い志は捨てようや

704:login:Penguin
11/10/17 00:11:29.94 OFrElfAX
ボタンを押されたときに、シグナルコネクト先を変更したいのですが
if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない)
ボタンを押されたら、シグナルコネクト先を変更するにはどうすればいいのでしょうか?

705:login:Penguin
11/10/17 03:57:34.59 jBv5AccH
>>704
> if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない)

コード見ていないので確かなことは言えませんが、
g_signal_handler_disconnect()とg_signal_connect()を使えばきっと出来ますよ(やってみたら出来た)
code snippestでも貼ってくれたらアドバイスもできたかと思いますが情報が不足していましたので
「ボタンを押されたら、シグナルコネクト先を変更する」というサンプルを書いてみました。ので参照みて下さい

URLリンク(www1.axfc.net)

main関数内とハンドラ内で共用する変数についての渡し方は
・g_object_set_data()を利用して渡す方法
・g_signal_connect()の最後の引数にGHashTableを指定して渡す方法
・大域変数として宣言しておく方法(この程度の場合は悪手かな?)
の3通り思いつきましたが1番目の案で記述しました。書き方はいろいろあります

706:login:Penguin
11/10/17 17:36:59.12 OFrElfAX
>>705
ご親切にありがとうございます
解読してみます

707:login:Penguin
11/12/26 12:41:35.30 Jg1bu6au
GTKとcarioとpangoの関係を教えて下さい

708:login:Penguin
11/12/27 02:22:40.60 4qSP4mDf
なんと、全部文字数が奇数です。

709:login:Penguin
12/02/12 21:52:16.17 vrKTadjR
スレリンク(tech板)

710:login:Penguin
12/03/13 01:46:49.13 3Ugm7oRN
ウィキ作った
URLリンク(monobook.org)

711:login:Penguin
12/03/13 23:30:30.92 XEqUJYrf
ぼくもつくろっと。

712:login:Penguin
12/03/20 06:02:28.11 jPw9I0u0
URLリンク(cairographics.org)
URLリンク(cairographics.org)
ぬぉ!死んだと思っていたcairoに新バージョンのニュースが!
FirefoxはLinux版も自前のOpenGLレンダラーに移行しつつあるから、
今更4倍速くなったって言っても悲しいけど、GTK+は間違いなくかなり速くなりそうだ。

713:login:Penguin
12/03/25 06:47:03.05 Bt4mNkdj
URLリンク(cairographics.org)
cairo-1.12.0がリリースされた。18ヶ月ぶりのメジャーバージョンアップらしい。
個人的にはGTK+の描画がどれだけ高速化されたかが気になるな。


714:login:Penguin
12/03/25 09:54:04.27 1P7W2wf1
>>713
>どれだけ高速化されたかが気になる

cairoで何をしようとしてるの?

715:login:Penguin
12/03/25 18:58:57.29 3RGnGf+l
何をしようとしてるかが関係あるの?

716:login:Penguin
12/03/25 21:27:14.92 rI7Awxch
正直に白状するが、
glageのuser dataの使い方がわからないまま
実務で開発しちゃったりしてます。

717:login:Penguin
12/03/25 21:35:56.39 FgoOLGO6
あと、ラジオボタンとか、配列可して、コールバック関数を一つに
まとめる方法もわからないまま
一個一個書いてます。
とほほ


718:login:Penguin
12/03/28 08:35:06.02 ThQeaUjt
EmacsとかVisual Studioみたいなマルチストロークのキーバインドって
GTK+でできますか?

719:login:Penguin
12/03/28 11:02:58.95 he0UMBAC
GTK+はEmacsで使われています

720:login:Penguin
12/03/28 20:02:18.92 ThQeaUjt
GTK+はEmacsではキーイベントの処理に使われていません

721:login:Penguin
12/03/28 20:41:18.94 R04800Nw
( ゚Д ゚)

722:login:Penguin
12/03/29 22:20:44.47 GJB1hQRo
cairoが高速化ってことはeclipseも早くなるのかね

723:login:Penguin
12/03/29 22:37:41.77 CN8scaWa
anjutaを使ってみたところ
gtk_signal_connectだと警告なしでコンパイルできるのに
g_signal_connectだと暗黙的関数宣言のエラーになるんですが
どうやったら直せるでしょうか?

724:login:Penguin
12/04/02 18:01:59.91 BFIgJvs2
どんな呼び方したのか書いてくれなきゃわからん
一番いい解決方法は DevhelpっていうGUIヘルプビューワ入れて g_signal_connectの説明読むこっちゃ
ver.も気にせずに例を書くとシグネチャ違うみたいだねそれが一番幸せになれる

725:723
12/04/03 21:46:17.80 gvKF9Ts9
よく確認してみたところエラーになるのはgtk_signal_connectのほうで
GTK3.0で使われなくなっていて代わりにg_signal_connectを使えと書いてありました
URLリンク(developer.gnome.org)

726:login:Penguin
12/04/15 02:03:04.26 Z1/ZfeAU
threadやmutex関係もgtk_の方は廃止になって、g_の方のみになった。3。0あたりから
基本的な関数はglibに集約して、ツールキット的な関数のみgtk 3で担当するように住み分けされた
コンパイルの最中に廃止された関数と表示がでるソースは、いずれソースを書き換えないとビルド不能になる
ちなみに最も基本的なlibcでも現在開発ラインの最新版だとgetsが本当にソースから廃止されてるので、getsが使われてるソースをビルドできなくなってる


727:login:Penguin
12/04/15 08:43:51.29 khsJyTTq
ガチで使えないキット(GTK)

728:login:Penguin
12/04/22 21:22:17.78 ZPy8N610
UGS
Never use gets().


729:login:Penguin
12/05/03 19:08:20.54 2lAo9jqg
フォントサイズって10.5ptとか小数点で設定できる?


730:login:Penguin
12/05/04 06:17:57.12 phIzEGLj
フォントサイズの指定方法がわかってて
小数点の指定ができるかって疑問なら
やってみて自分で確認すりゃいいのに。

731:login:Penguin
12/05/04 11:44:12.10 LzE47Zaa
型がguintみたいだが

732:login:Penguin
12/05/04 14:24:41.51 86E5ktal
それがどうした

733:login:Penguin
12/05/09 14:47:56.27 M8lWcVDx
Gtk.TreeView.Selection.Mode = Gtk.SelectionMode.Multiple;
に変更すると得られるGtk.TreeIterがおかしくなってしまう
のですが、Multipleの時はSelection.GetSelectedは使えない
のでしょうか?

734:login:Penguin
12/05/15 22:46:57.21 PyXbSQll
Gtk.Label page_label = new Gtk.Label (title);
page_label.KeyReleaseEvent += delegate {
Console.WriteLine("!"); //←呼び出されない理由を説明してほしい!
};

735:login:Penguin
12/05/16 07:38:42.69 1Jlqt6RC
gtk_widget_set_events()

736:login:Penguin
12/05/16 21:45:01.79 oMuQxzgz
GTKは親切ではないなーと楽をしてきただけに思いますw

>>735
ありがとうございます
しかし、それらしいのが見つかりません

737:login:Penguin
12/05/23 21:46:04.65 jdgnkMvj
GTKのGUIは更新をサボる癖があるようですが
無理やり更新させる方法はないでしょうか?

738:login:Penguin
12/05/23 21:50:35.79 jdgnkMvj
更新するWidgetを間違えてた!
解決

739:login:Penguin
12/06/08 19:02:58.11 BmPo410Y
Gtk-CRITICAL **: IA__gtk_main_quit: assertion `main_loops != NULL' failed

メインループ内でGtk.Application.Quit ();を呼ぶなって事だろうけど
終了させる方法はないのでしょうか?

740:login:Penguin
12/06/08 20:38:02.95 6+ZFg73U
>>739

電源を切れば終了。

741:login:Penguin
12/06/09 03:50:44.00 xIQyunsc
gtk_main_quit()のソースコードを読めば解決。

742:login:Penguin
12/06/10 07:41:42.40 NypXeHdm
>>739
launcher みたいの作ろうとしてるんだろうか…
いまいちどういうことなのか判らないんだけど

logメッセージを抑制したいなら glib 2.32から

URLリンク(www.mail-archive.com)
G_LOG_LEVEL_CRITICAL
log level for critical messages, see g_critical(). This level is also
used for messages produced by g_return_if_fail() and g_return_val_if_fail().

ある程度デフォルトだと出力されなくなるみたい
onにするときは環境変数G_MESSAGES_DEBUG=allで以前と同じ動作になるらしい

743:login:Penguin
12/07/04 15:28:28.70 RZglH82u
from gi.repository import Gtk

744:login:Penguin
12/08/07 21:52:39.08 4kcOLz8m
このスレ的にはGTKのものをそのまま叩くっていうのは危険なこと?

745:login:Penguin
12/08/08 21:32:46.85 heEHx4e5
意味わからん。

746:login:Penguin
12/08/09 02:30:11.31 IoAeP/Ow
バッシングだな

747:login:Penguin
12/08/09 09:21:30.12 n/9/m8Sd
え?ラッパーライブラリを介さず直接コールするって意味じゃないの?

748:login:Penguin
12/08/09 22:47:55.45 Q1A6/Eca
>>747
そのとおりです

749:login:Penguin
12/08/09 22:57:00.84 P67COA3s
Exactly

750:login:Penguin
12/09/11 19:25:22.84 AmLZmZH+
取り敢えずgtk_main_quit()

751:login:Penguin
12/11/27 12:00:27.00 Mwv1yHjg
UbuntuでPyGTKを利用してアプリケーションを作っているのですが、一部パーミッションが与えられていないファイルへの書き込みを行いたいと考えております。

Ubuntu Software Centerからアプリケーションをインストールしようとすると、Authenticateというポップアップが出てきてパスワードを入力するとsudoの様にアプリケーションのインストールができますが、これはどのように実現しているのでしょうか?

自分でも書き込めるようにパーミッションを変更していることを前提にしているのですが、変更方法を知らない人や、一々変更した後にアプリケーションを起動するのが煩わしい人向けに、アプリケーションからsudoのようなことができないかと考えております。

752:login:Penguin
12/11/27 23:24:04.63 p3EAvFxY
>>751
pyは使えないのですが、この話はGTKのスレの質問でしょうかね?
Cだったらstatとchmod使うところじゃないかと。

753:login:Penguin
12/11/27 23:44:47.91 2Faa51y/
>>751
もしかして:gksu

$ sudo command
のかわりに
$ gksu command
ってやると
GUIでパスワード聞かれる

754:login:Penguin
12/11/28 00:24:58.73 JU9FPiAT
口下手な>>753は、gksuを参考にlibgksuを使えと言いたいんだな?
libgksuのpythonバインディングもあるから安心だって言いたいんだよな?

755:login:Penguin
12/11/28 16:35:00.90 a6DQ5WYq
polkit

756:login:Penguin
12/12/02 14:08:52.19 jmMYkF+D
>>754
ナイス翻訳

757:login:Penguin
13/02/09 09:31:18.23 cnWShbXp
質問させてください。
gtkmm2.4ベースでプログラムをいじっているのですが、画面操作せずにGtk::Dialogを閉じる方法が分かりません
Dialog作成→threadで特定の処理を開始→処理終了→※Dialogを閉じる(画面操作せずに)
と言う流れをプログレス表示などをして処理したいのですがrunした後にresponseをしてもhideしてもDialogが消えません
根本的に分かっていないのでしょうが・・・上記のような処理をするにはどうしたら良いのでしょうか?

758:login:Penguin
13/03/07 14:11:29.83 QnTnog/x
こう書く方法ないかな?
public class Window :Gtk.Window{
}

759:login:Penguin
13/03/07 16:21:44.64 19LddT7Q
>>758
valaをつかえばいいと思うよ

760:login:Penguin
13/03/08 18:55:04.44 Eqvj3fL9
vala優秀そうだね
でもwindowsでも使いまわしたいのでmonoから外れたくない

761:login:Penguin
13/03/13 09:34:23.06 EMo1WQCk
>>760
valaはwindowsでも普通に使える。

762:login:Penguin
13/03/23 10:23:11.54 PyYsgXcc
Gtk::Dialogはon_delete_eventを呼ばないのですか?
処理が途中の場合とかにダイアログを閉じるのを中止したいのですが、何処で中止させたらいいのやら

763:login:Penguin
13/03/23 16:14:11.15 oI1eFSYR
ちょっとチャレンジしてみることにしました
FreeBasic導入したら、GTK+とCairoが入っていたので。
ネットとサンプルを参考にしながら、
ちょこちょこと弄ってみます。

お手軽に描写の綺麗なプログラムが書けるってことは素晴らしい。

764:762
13/03/23 16:55:08.61 PyYsgXcc
結局add_buttonで追加したボタンを使うのではなく、アクションエリアに普通のボタンを追加し、
connectしたメソッドで処理チェックを行なった後にresponseでIDを投げる事で一応動きは出来たみたいです。
もっと簡単な方法はないですか?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch