[過去ログ] GTK+プログラミング (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
696
(2): 2011/09/07(水)01:59 ID:T6UTzAz+(1) AAS
>>693
gtk_image_set_from_file()使ってjpegでぱらぱら漫画作った
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/parapara_manga.git

いっしゅのモーションJPEGwww
697: 2011/09/07(水)11:01 ID:s/CIYWHm(1) AAS
>>696
何かの折にヘッダファイルとして使わせてもらいます
698: 2011/10/03(月)10:40 ID:DltdAdh6(1/2) AAS
>>696さんのリストを一部改変してボタンを押されたら次の画像を表示するというふうにしたいのですが
上手くいきません
ボタンのシグナルコネクトをflipという関数に接続したのですが
関数が反応してないようです
どうすればいいか教えてください
改変したリストです↓
外部リンク[c]:www1.axfc.net
699
(1): 2011/10/03(月)10:45 ID:DltdAdh6(2/2) AAS
すいません、元のリストをアップしてしまいました
正しくはこちらです(ファイル名をimage2.cに変えました)
外部リンク[c]:www1.axfc.net
700
(2): 2011/10/04(火)05:43 ID:OMJjY+ZZ(1/3) AAS
>>700
ちょちょと換えてみたから見てみて
外部リンク[c]:www1.axfc.net
devhelpってヘルプビューア入れて GtkButtonの説明読むのおすすめ
「The "clicked" signal」 てとこにclickedシグナルハンドラのシグネチャが書いてあるよ
>>699が元々書いてたハンドラとシグネチャが一致してなかったみたい

それと初回クリック時の画像ファイルインデックスは0番じゃなくて1番にしといた
701: 2011/10/04(火)05:45 ID:OMJjY+ZZ(2/3) AAS
指示レス番まちがえたけど  訂正しねーよ!(我が家杉山)
702: 2011/10/04(火)12:32 ID:VseFFwAj(1) AAS
>>700
動きました、どうもすいません
703: 2011/10/04(火)22:44 ID:OMJjY+ZZ(3/3) AAS
謝る必要はこれっぽっちもないけど
「動けばいい」とかいう低い志は捨てようや
704
(1): 2011/10/17(月)00:11 ID:OFrElfAX(1/2) AAS
ボタンを押されたときに、シグナルコネクト先を変更したいのですが
if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない)
ボタンを押されたら、シグナルコネクト先を変更するにはどうすればいいのでしょうか?
705
(1): 2011/10/17(月)03:57 ID:jBv5AccH(1) AAS
>>704
> if elseで分岐させてみたのですが上手くいきません。(最初に通過した設定がそのまま残って変更出来ない)

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

外部リンク[c]:www1.axfc.net

main関数内とハンドラ内で共用する変数についての渡し方は
・g_object_set_data()を利用して渡す方法
・g_signal_connect()の最後の引数にGHashTableを指定して渡す方法
・大域変数として宣言しておく方法(この程度の場合は悪手かな?)
の3通り思いつきましたが1番目の案で記述しました。書き方はいろいろあります
706: 2011/10/17(月)17:36 ID:OFrElfAX(2/2) AAS
>>705
ご親切にありがとうございます
解読してみます
707: 2011/12/26(月)12:41 ID:Jg1bu6au(1) AAS
GTKとcarioとpangoの関係を教えて下さい
708: 2011/12/27(火)02:22 ID:4qSP4mDf(1) AAS
なんと、全部文字数が奇数です。
709: 2012/02/12(日)21:52 ID:vrKTadjR(1) AAS
2chスレ:tech
710: 2012/03/13(火)01:46 ID:3Ugm7oRN(1) AAS
ウィキ作った
外部リンク:monobook.org
711: 2012/03/13(火)23:30 ID:XEqUJYrf(1) AAS
ぼくもつくろっと。
712: 2012/03/20(火)06:02 ID:jPw9I0u0(1) AAS
外部リンク:cairographics.org
外部リンク:cairographics.org
ぬぉ!死んだと思っていたcairoに新バージョンのニュースが!
FirefoxはLinux版も自前のOpenGLレンダラーに移行しつつあるから、
今更4倍速くなったって言っても悲しいけど、GTK+は間違いなくかなり速くなりそうだ。
713
(1): 2012/03/25(日)06:47 ID:Bt4mNkdj(1) AAS
外部リンク:cairographics.org
cairo-1.12.0がリリースされた。18ヶ月ぶりのメジャーバージョンアップらしい。
個人的にはGTK+の描画がどれだけ高速化されたかが気になるな。
714: 2012/03/25(日)09:54 ID:1P7W2wf1(1) AAS
>>713
>どれだけ高速化されたかが気になる

cairoで何をしようとしてるの?
715: 2012/03/25(日)18:58 ID:3RGnGf+l(1) AAS
何をしようとしてるかが関係あるの?
716: 2012/03/25(日)21:27 ID:rI7Awxch(1) AAS
正直に白状するが、
glageのuser dataの使い方がわからないまま
実務で開発しちゃったりしてます。
717
(1): 2012/03/25(日)21:35 ID:FgoOLGO6(1) AAS
あと、ラジオボタンとか、配列可して、コールバック関数を一つに
まとめる方法もわからないまま
一個一個書いてます。
とほほ
718: 2012/03/28(水)08:35 ID:ThQeaUjt(1/2) AAS
EmacsとかVisual Studioみたいなマルチストロークのキーバインドって
GTK+でできますか?
719: 2012/03/28(水)11:02 ID:he0UMBAC(1) AAS
GTK+はEmacsで使われています
720: 2012/03/28(水)20:02 ID:ThQeaUjt(2/2) AAS
GTK+はEmacsではキーイベントの処理に使われていません
721: 2012/03/28(水)20:41 ID:R04800Nw(1) AAS
( ゚Д ゚)
722: 2012/03/29(木)22:20 ID:GJB1hQRo(1) AAS
cairoが高速化ってことはeclipseも早くなるのかね
723
(1): 2012/03/29(木)22:37 ID:CN8scaWa(1) AAS
anjutaを使ってみたところ
gtk_signal_connectだと警告なしでコンパイルできるのに
g_signal_connectだと暗黙的関数宣言のエラーになるんですが
どうやったら直せるでしょうか?
724: 2012/04/02(月)18:01 ID:BFIgJvs2(1) AAS
どんな呼び方したのか書いてくれなきゃわからん
一番いい解決方法は DevhelpっていうGUIヘルプビューワ入れて g_signal_connectの説明読むこっちゃ
ver.も気にせずに例を書くとシグネチャ違うみたいだねそれが一番幸せになれる
725: 723 2012/04/03(火)21:46 ID:gvKF9Ts9(1) AAS
よく確認してみたところエラーになるのはgtk_signal_connectのほうで
GTK3.0で使われなくなっていて代わりにg_signal_connectを使えと書いてありました
外部リンク[html]:developer.gnome.org
726: 2012/04/15(日)02:03 ID:Z1/ZfeAU(1) AAS
threadやmutex関係もgtk_の方は廃止になって、g_の方のみになった。3。0あたりから
基本的な関数はglibに集約して、ツールキット的な関数のみgtk 3で担当するように住み分けされた
コンパイルの最中に廃止された関数と表示がでるソースは、いずれソースを書き換えないとビルド不能になる
ちなみに最も基本的なlibcでも現在開発ラインの最新版だとgetsが本当にソースから廃止されてるので、getsが使われてるソースをビルドできなくなってる
727: 2012/04/15(日)08:43 ID:khsJyTTq(1) AAS
ガチで使えないキット(GTK)
728: 2012/04/22(日)21:22 ID:ZPy8N610(1) AAS
UGS
Never use gets().
729: 2012/05/03(木)19:08 ID:2lAo9jqg(1) AAS
フォントサイズって10.5ptとか小数点で設定できる?
730: 2012/05/04(金)06:17 ID:phIzEGLj(1) AAS
フォントサイズの指定方法がわかってて
小数点の指定ができるかって疑問なら
やってみて自分で確認すりゃいいのに。
731: 2012/05/04(金)11:44 ID:LzE47Zaa(1) AAS
型がguintみたいだが
732: 2012/05/04(金)14:24 ID:86E5ktal(1) AAS
それがどうした
733: 2012/05/09(水)14:47 ID:M8lWcVDx(1) AAS
Gtk.TreeView.Selection.Mode = Gtk.SelectionMode.Multiple;
に変更すると得られるGtk.TreeIterがおかしくなってしまう
のですが、Multipleの時はSelection.GetSelectedは使えない
のでしょうか?
734: 2012/05/15(火)22:46 ID:PyXbSQll(1) AAS
Gtk.Label page_label = new Gtk.Label (title);
page_label.KeyReleaseEvent += delegate {
Console.WriteLine("!"); //←呼び出されない理由を説明してほしい!
};
735
(1): 2012/05/16(水)07:38 ID:1Jlqt6RC(1) AAS
gtk_widget_set_events()
736: 2012/05/16(水)21:45 ID:oMuQxzgz(1) AAS
GTKは親切ではないなーと楽をしてきただけに思いますw

>>735
ありがとうございます
しかし、それらしいのが見つかりません
737: 2012/05/23(水)21:46 ID:jdgnkMvj(1/2) AAS
GTKのGUIは更新をサボる癖があるようですが
無理やり更新させる方法はないでしょうか?
738: 2012/05/23(水)21:50 ID:jdgnkMvj(2/2) AAS
更新するWidgetを間違えてた!
解決
739
(2): 2012/06/08(金)19:02 ID:BmPo410Y(1) AAS
Gtk-CRITICAL **: IA__gtk_main_quit: assertion `main_loops != NULL' failed

メインループ内でGtk.Application.Quit ();を呼ぶなって事だろうけど
終了させる方法はないのでしょうか?
740: 2012/06/08(金)20:38 ID:6+ZFg73U(1) AAS
>>739

電源を切れば終了。
741: 2012/06/09(土)03:50 ID:xIQyunsc(1) AAS
gtk_main_quit()のソースコードを読めば解決。
742: 2012/06/10(日)07:41 ID:NypXeHdm(1) AAS
>>739
launcher みたいの作ろうとしてるんだろうか…
いまいちどういうことなのか判らないんだけど

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

外部リンク[html]: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: 2012/07/04(水)15:28 ID:RZglH82u(1) AAS
from gi.repository import Gtk
744: 2012/08/07(火)21:52 ID:4kcOLz8m(1) AAS
このスレ的にはGTKのものをそのまま叩くっていうのは危険なこと?
745: 2012/08/08(水)21:32 ID:heEHx4e5(1) AAS
意味わからん。
746: 2012/08/09(木)02:30 ID:IoAeP/Ow(1) AAS
バッシングだな
747
(1): 2012/08/09(木)09:21 ID:n/9/m8Sd(1) AAS
え?ラッパーライブラリを介さず直接コールするって意味じゃないの?
748: 2012/08/09(木)22:47 ID:Q1A6/Eca(1) AAS
>>747
そのとおりです
749: 2012/08/09(木)22:57 ID:P67COA3s(1) AAS
Exactly
750: 2012/09/11(火)19:25 ID:AmLZmZH+(1) AAS
取り敢えずgtk_main_quit()
751
(2): 2012/11/27(火)12:00 ID:Mwv1yHjg(1) AAS
UbuntuでPyGTKを利用してアプリケーションを作っているのですが、一部パーミッションが与えられていないファイルへの書き込みを行いたいと考えております。

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

自分でも書き込めるようにパーミッションを変更していることを前提にしているのですが、変更方法を知らない人や、一々変更した後にアプリケーションを起動するのが煩わしい人向けに、アプリケーションからsudoのようなことができないかと考えております。
752: 2012/11/27(火)23:24 ID:p3EAvFxY(1) AAS
>>751
pyは使えないのですが、この話はGTKのスレの質問でしょうかね?
Cだったらstatとchmod使うところじゃないかと。
753
(1): 2012/11/27(火)23:44 ID:2Faa51y/(1) AAS
>>751
もしかして:gksu

$ sudo command
のかわりに
$ gksu command
ってやると
GUIでパスワード聞かれる
754
(1): 2012/11/28(水)00:24 ID:JU9FPiAT(1) AAS
口下手な>>753は、gksuを参考にlibgksuを使えと言いたいんだな?
libgksuのpythonバインディングもあるから安心だって言いたいんだよな?
755: 2012/11/28(水)16:35 ID:a6DQ5WYq(1) AAS
polkit
756: 2012/12/02(日)14:08 ID:jmMYkF+D(1) AAS
>>754
ナイス翻訳
757: 2013/02/09(土)09:31 ID:cnWShbXp(1) AAS
質問させてください。
gtkmm2.4ベースでプログラムをいじっているのですが、画面操作せずにGtk::Dialogを閉じる方法が分かりません
Dialog作成→threadで特定の処理を開始→処理終了→※Dialogを閉じる(画面操作せずに)
と言う流れをプログレス表示などをして処理したいのですがrunした後にresponseをしてもhideしてもDialogが消えません
根本的に分かっていないのでしょうが・・・上記のような処理をするにはどうしたら良いのでしょうか?
758
(1): 2013/03/07(木)14:11 ID:QnTnog/x(1) AAS
こう書く方法ないかな?
public class Window :Gtk.Window{
}
759: 2013/03/07(木)16:21 ID:19LddT7Q(1) AAS
>>758
valaをつかえばいいと思うよ
760
(1): 2013/03/08(金)18:55 ID:Eqvj3fL9(1) AAS
vala優秀そうだね
でもwindowsでも使いまわしたいのでmonoから外れたくない
761: 2013/03/13(水)09:34 ID:EMo1WQCk(1) AAS
>>760
valaはwindowsでも普通に使える。
762
(1): 2013/03/23(土)10:23 ID:PyYsgXcc(1/2) AAS
Gtk::Dialogはon_delete_eventを呼ばないのですか?
処理が途中の場合とかにダイアログを閉じるのを中止したいのですが、何処で中止させたらいいのやら
763: 2013/03/23(土)16:14 ID:oI1eFSYR(1) AAS
ちょっとチャレンジしてみることにしました
FreeBasic導入したら、GTK+とCairoが入っていたので。
ネットとサンプルを参考にしながら、
ちょこちょこと弄ってみます。

お手軽に描写の綺麗なプログラムが書けるってことは素晴らしい。
764: 762 2013/03/23(土)16:55 ID:PyYsgXcc(2/2) AAS
結局add_buttonで追加したボタンを使うのではなく、アクションエリアに普通のボタンを追加し、
connectしたメソッドで処理チェックを行なった後にresponseでIDを投げる事で一応動きは出来たみたいです。
もっと簡単な方法はないですか?
765: 2013/05/07(火)16:10 ID:6dLQJSLO(1) AAS
ちょっとスレチになるかもなんですけど、GTK使われたアプリをWindowsで自動操作したいのですが
WM_LBUTTONDOWNなどで座標を直接指定でやってるんですけどMenuBar以外が反応してくれないです
どうすればいいでしょうか?
766: 2013/05/10(金)02:01 ID:Jlh16O1w(1) AAS
Macで日本語入力が可能になりそう!Windows爆死www Linux憤死wwwwwwwwwwwwwwwww
2chスレ:poverty
767: 2013/07/03(水) NY:AN:NY.AN ID:5x5esxXj(1) AAS
FreeWnn スレッドより:
2chスレ:unix

457 :名無しさん@お腹いっぱい。:2012/07/05(木) NY:AN:NY.AN
gtk2アプリにkinput2で入力する場合に、kinput2のステータス表示の「[あ]」が
真っ黒になってしまう問題の解決法の俺様メモ。

gtk2のソースの、modules/input/gtkimcontextxim.cの
on_status_window_expose_event()関数が変更されたのが原因。

これを、gtk+-2.21.5(以前)のソースのgtkimcontextxim.cに戻せば桶。

modules/input以下のサブディレクトリだけmakeして、
できたim-xim.soだけ置き換えればよい。

ソースにバグありとみた。
768: 2013/09/23(月)01:43 ID:pt1QWlbc(1) AAS
外部リンク:www.tarnyko.net
ここでWindows版のBroadway実行環境を配布してたから試してみたけど
遅くて使いものにならん…
asm.jsは良い感じなんで、GTK+アプリをそのままasm.jsにコンパイルして
ブラウザで実行出来るようにしてくれたら最高だがな。
769
(1): 2013/10/24(木)11:46 ID:YHoA8g0Q(1) AAS
同一アプリ上で、IconViewからFrameとかImageへDrag & Dropって
可能なんでしょうか・・・。

そんな感じのサンプルをご存知でしたら教えてくださいm(_ _)m
770: 769 2013/10/25(金)16:54 ID:2AmnlVsx(1) AAS
すみません、>>769は出来るようになりました。
drop側の設定に問題がありました。

ところで、Imageから別のImageへのDrag & Dropは可能なんでしょうか。
Dragしても、IconViewの時のようにカーソルが変化しません・・・。
771
(6): 2014/05/24(土)00:08 ID:jA6HOcWn(1) AAS
gtkmmでProgressBarの描画更新はどうやったらええねん
set_fractionしても途中を描画してくれない
772
(2): 2014/05/24(土)01:19 ID:3aXipg2f(1/5) AAS
pulse()

外部リンク[html]:developer.gnome.org
外部リンク[html]:developer.gnome.org
773
(1): 771 2014/05/24(土)09:12 ID:ESO9FbEd(1/2) AAS
>>772
それアクティビティモードというのと違う?
ナイトライダーをしたいわけではないんよ・・・
774
(1): 2014/05/24(土)12:34 ID:3aXipg2f(2/5) AAS
>>771,773
set_fraction() で、その都度増分を変えて、すぐ更新したいってこと?
queue_draw() で、PrograssBar の on_draw イベントを呼んでみたら?
775: 771 2014/05/24(土)14:58 ID:ESO9FbEd(2/2) AAS
>>774
はい、その通りです。お付き合い頂き有り難う御座います。
queue_draw()を試してみましたが、表示のされ方は変わりませんでした。
試したコードを貼り付けようとしたのですが、行数の制限で書けませんでしたので、部分的に書き込みます。
ググって見ているのですが・・・何かお気づきの点がありましたらよろしくお願い致します。

プログレスバーとボタンを配置し、ボタンが押された時に動くようにしました。
drawBtn.signal_clicked().connect( sigc::mem_fun( *this, &ProgressWindow::on_draw_prog ) );

void ProgressWindow::on_draw_prog() {
progBar.set_fraction( 0.0 );
for( int i=0; i<100; i++ ) {
progBar.set_fraction( (double)i/100.0 );
// progBar.queue_draw();
sleep( 1 );
}
progBar.set_fraction( progBar.get_fraction() + 0.01 );
}
776
(1): 2014/05/24(土)16:46 ID:3aXipg2f(3/5) AAS
おそくなってゴメン、こんな感じでどうでしょう?
外部リンク[html]:www.dotup.org
>>772 であげたチュートリアルのコードをいじったものです。

SpinButton の値を 0 から 100 (%)までの任意の値に変更して "Update" ボタンを押すと
ProgressBar の状態が変化します。

examplewindow.cc の on_button_update を見れば分かるかと思います。
777: 2014/05/24(土)17:31 ID:3aXipg2f(4/5) AAS
あれ? queue_draw() いらねーな。w
778: 771 2014/05/24(土)22:15 ID:SrMGc3rQ(1/2) AAS
>>776
コードまで書いて頂き有り難う御座います。
コンパイルして動作を見ましたら、進捗状況の変化を確認できました。
しかしながらon_button_update内で下記コードのようなループを回しset_fractionするようにしてみましたら
相変わらず最後の表示だけするようです。実際の処理ではループを回して進捗状況をset_fractionします。
む〜もう少しネットをあさってみます。

void ExampleWindow::on_button_update()
{
m_ProgressBar.set_fraction( 0.0 );
for( int i=0; i<100; i++ ) {
m_ProgressBar.set_fraction( (double)i/100.0 );
m_ProgressBar.queue_draw();
sleep( 1 );
}
}
779: 771 2014/05/24(土)23:11 ID:SrMGc3rQ(2/2) AAS
なんかそれっぽい動きになったけどこれでいいのかね・・・イベント強制執行みたいな

[変更前]
m_ProgressBar.queue_draw();
sleep( 1 );
[変更後]
usleep( 50000 );
while( Gtk::Main::events_pending() ) Gtk::Main::iteration( true );
780: 2014/05/24(土)23:56 ID:3aXipg2f(5/5) AAS
タイマー使って処理させるとか
外部リンク[html]:www.dotup.org
781: 771 2014/05/25(日)10:38 ID:OwNsCCvJ(1) AAS
タイマーか〜処理がスパゲッティーになりかけているから使いづらいんだよね
アクティビティモードの時は使いやすそう。
今少し弄っているんだけど、set_pulse_stepでステップ量設定しても反映されないな
782: 2014/05/25(日)13:02 ID:ujxKETx8(1) AAS
外部リンク:stackoverflow.com
783: 2014/06/08(日)10:20 ID:kFAavqfc(1) AAS
ComboBoxでドロップダウンアイテムを選択した時に発生する
イベントってなに?
784: 2014/06/08(日)17:33 ID:lVyy6Wyn(1) AAS
signal_changed()
785: 2014/09/22(月)18:34 ID:eWn3ghjY(1) AAS
本当は先にこっちへ書くべきだった。
gtk_mode
gtk_fashion
gtk_style
gtk_pattern
786
(2): 2014/10/03(金)20:31 ID:3j8hGaDn(1) AAS
みなさん、人工言語の
高級低級の長所短所のチンチンはご存知?
787: 2014/10/04(土)21:22 ID:PLRFhsu2(1) AAS
>>786
日本語でOK
788: 2014/10/05(日)09:12 ID:6cVZzLYB(1) AAS
技術系スレには自分で人口無能を作っちゃう人もいるからな。
>>786が人間とは限らないよ
789: 2014/10/05(日)12:54 ID:8NkrJ1Fe(1/2) AAS
かわいいかっぽれ
790: 2014/10/05(日)14:16 ID:8NkrJ1Fe(2/2) AAS
人の嫌がる事をすすんでしましょう
791: 2014/12/27(土)20:58 ID:FwEwRAao(1) AAS
すみませんが質問させてください
gtkmmでボタンを作りボタンを押された時にソケットで通信しようとしたのですが
select関数をした時に「リソースが一時的に利用できません」と出てしまい動きません
コンストラクタでselect関数を使うと動くのですが・・・
gtkmmに通信を阻害する要因とか有るのでしょうか?
792: 2014/12/28(日)23:07 ID:aGqgOq87(1) AAS
学校の課題でシューティングゲーム作ってるんですが、cairoで表示した複数の画像の手前、奥の位置関係を変えることってできますか?
793
(1): 2014/12/29(月)00:51 ID:13XuaNya(1) AAS
はい。
794
(2): 2016/01/23(土)21:11 ID:XkMlkiDd(1) AAS
昨日からC+GTKでプログラム作ってるんだけど質問。treeviewでリスト表示してる状態で、キー入力すると、
なんか入力ボックスが開いて入力させるんだけど、これを止めさせる方法がわからない
表示だけさせたいんで、編集できるかも?って感触を持たせたくない
エラー表示させる積りはないけど、無視したい
多分、単純な事なんだろうけど...
795
(1): 2017/02/04(土)12:26 ID:KMsE1Vqa(1) AAS
>>794
既に解決してるかもしれないけど
GtkTreeViewのプロパティにある「検索可能」フラグをOffにすればよいみたい
796
(1): 2017/02/12(日)13:51 ID:+yRaNQxe(1/2) AAS
g++ (GCC) 6.3.1 20170109、gtkmm 3.22.0でフォントの描画画像を取得するテストプログラムを
作っているのだけど Gdk::Pixbuf::create( get_window(), 0, 0, get_width(), get_height() );
で取得した画像がon_drawで描く前の状態を取ってきているみたいで一つ前の表示になってしまいます
on_drawで描画した後の画像を取得するにはどうしたら良いでしょうか?
(set_double_bufferedも疑ったのですがこちらは関係ないような気がします)
提示する情報が分からず情報不足かも知れませんが宜しくお願いします
797: 796 2017/02/12(日)17:47 ID:+yRaNQxe(2/2) AAS
コールバック関数内で描画に関わる関数を呼んで、その次にPixbufを取り出す関数を読んでたのですが
どうもコールバック関数が終わるまでイベントが処理されないようでした
強制的にイベントを処理する下記コードを追加して上手く動く様になりました

while( Gtk::Main::events_pending() ) {
Gtk::Main::iteration( true );
usleep( 1000 );
}

出来ればDrawingAreaに描画しなくてもPixbufを取り出せると良いのですが・・・
(Pango::Layoutあたりから直接画像イメージを作れないでしょうか)
798
(1): 2017/05/24(水)13:46 ID:TLlefqX7(1) AAS
GTKってどうなの?
GTKかQtkかなんやんでQtにしたんだけど(当時kdevelopってQtの開発環境があったんだよね、今もあるけど)。
799: 2017/05/24(水)14:19 ID:pbxEBOft(1) AAS
今からやるならQtのほうがいいんでね?
これからGTK+4で阿鼻叫喚になるのと対照的に、Qt5へ移行したばっかだし
800: 2017/05/24(水)14:29 ID:TJNNAVtb(1) AAS
>>798
ウインドウ内でうねうね動かせて視覚効果高いのがのがQt。Qtならゲームも作れる。
そうゆうの全く無理で地味でも、ちょうど良いコンパクトサイズのボタン等が充実しててツール作ったりするのに適してるのがGTK。
801
(1): 2017/05/24(水)18:53 ID:cGg4zBc+(1) AAS
GTK+4以降では、「安定なAPI体系はハナから持たない」って認識でいいの?
ffmpegのように絶え間なくAPIが変化し続けることになる?
で、バージョン番号もブラウザのようにうなぎ上りになるのか
802
(1): 2017/05/24(水)20:06 ID:PSOKRtb/(1) AAS
外部リンク:blogs.gnome.org
2年ごとにメジャーバージョン更新
最新のメジャーバージョンは開発中につき不安定
各メジャーバージョンの最終版=安定版としたいらしい
803: 2017/05/24(水)22:24 ID:0wlGVdsK(1) AAS
なるほど
ffmpegほどキ○ガイな方針ではないのね
804
(1): 2017/06/24(土)15:36 ID:J/+rjWu3(1) AAS
java の JList みたいなことはできる?
どういうのかというと、参考画像
画像リンク[png]:docs.oracle.com

リストのアイテムがテーブル上に並んでいて、
上下左右にカーソル移動できる。

GTK だとないかな?
805
(1): 2017/06/24(土)17:57 ID:cdtIIsj7(1) AAS
IconViewをラベルだけで使うみたいなもんかね
Pythonですまんが

from gi.repository import Gtk
from gi.repository import GObject

bname = ["Arlo", "Cosmo", "Elmo", "Hugo", "Jethro",
        "Laszlo", "Milo", "Nemo", "Otto", "Ringo",
        "Rocco", "Rollo"]
model = Gtk.ListStore(GObject.TYPE_STRING)
for n in bname:
    t = model.append()
    model.set(t, 0, n)
view = Gtk.IconView(model)
view.set_text_column(0)
win = Gtk.Window()
win.add(view)
win.show_all()
win.connect("delete-event", Gtk.main_quit)
Gtk.main()
806: 804 2017/06/26(月)15:14 ID:y5aZk+CQ(1) AAS
>>805
なるほど、IconView でテキストか。
できたできた、
どうもありがとう!
807: 2017/07/04(火)04:00 ID:Rpvk2+Dl(1) AAS
gtk勉強しようかと思うんだけどもうオワコン?
でもQtバインディングよりgtkバインディングのほうが多いしなぁ...

gtk4で大幅に進化したりしないかな
808: 2017/07/04(火)13:24 ID:8Z5Rtw2V(1) AAS
両方やってみればいい
考えてるほど時間も労力も掛からないよ
809
(1): 2017/07/11(火)15:53 ID:9jKfhw2z(1) AAS
window のサイズをいい感じ?にできる関数があるか、
お知恵を拝借。

(1) やったこと
GtkWindow に対して、GtkToolbar しか置いてない。
toolbar に、gtk_toolbar_insert() でボタンを4つ横並びに置く。
window のサイズは未指定。

(2) 動作確認
右の方のボタンが矢印でまとめられて?
メニューみたいに表示される。
(横幅を広げると、横並びに表示される)

(3) 所感
相当前に gtk_toolbar_append_element() (deprecated) 等で
配置したときは、横並びに表示されて、
window のサイズはちょうどいい具合に表示されていた(ように思う)。

ボタンが、矢印でまとめられないで、横並びに表示されるように
window のサイズをいい感じ?にできる関数がある?
(意味わかんなかったらゴメンw)
gtk_widget_set_size_request() でざっくりで指定しないとダメかなあ。
810: 2017/07/11(火)21:23 ID:w3xO5s8F(1) AAS
>>809
直接の答えは分からないけど、何の工夫もせずにやったらボタンが4つ並ぶ状態で起動すると思う

public class ToolbarTest : Gtk.Window {
  public ToolbarTest () {
    destroy.connect (Gtk.main_quit);
    var tb = new Gtk.Toolbar ();
    foreach (var n in new int[] {1,2,3,4}){
      tb.add (new Gtk.ToolButton (null,@"Button$n"));
    }
    add (tb);
    show_all ();
  }

  public static int main (string[] args) {
    Gtk.init (ref args);
    new ToolbarTest ();
    Gtk.main ();
    return 0;
  }
}
811: 2017/09/24(日)13:44 ID:AWmycg5C(1) AAS
toolbar に付いている「つまみ」
(アプリでよくある「toolbar を固定する」みたい感じなのをオフにすると現れる、持つ部分?)

あれは GTK+ では、どうやって出すのでしょうか?
812: 2017/09/24(日)23:45 ID:PwTxDy1k(1) AAS
GtkHandleBoxならdeprecatedだぞ
813
(1): 2017/09/25(月)09:15 ID:bLbAubVC(1) AAS
VTEのspawnなんとかのAPIはいつになったらファイナライズされるのかね(怒
814: 2017/10/05(木)21:14 ID:c3KsIY0h(1) AAS
gtk4が気になってgtkの勉強始めようと思うんだけど初心者は何から始めるのがおすすめでしょうか?
815: 2017/10/10(火)12:36 ID:d/a7Ir8S(1/2) AAS
python3+gtk3で作るに際し
IDE (統合環境)みたいなのってある?

そう大げさなものでなくてよくて
コード補完(gtkのメソッドの)が
出来ればいいかなぐらいの感じなんだけど

もしくは大抵何が使われているのか
816
(1): 2017/10/10(火)15:06 ID:6wfTcDmJ(1/2) AAS
pycharm
817
(1): 2017/10/10(火)15:07 ID:6wfTcDmJ(2/2) AAS
あるいはvscodeにpythonプラグイン入れれば出来るかな
818: 2017/10/10(火)21:08 ID:d/a7Ir8S(2/2) AAS
>>816-817
thank you
819: 2017/10/15(日)20:41 ID:IZYKuyT8(1) AAS
補足だけどpycharmでgtkの補完を行うにはちょっとした作業が必要みたい
外部リンク:stackoverflow.com

vscodeのほう(というかjediという補完ツール)も何かしら方法はあるっぽい?
820
(2): 2017/11/01(水)06:36 ID:6RRJjvM+(1/10) AAS
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <cairo.h>

#define BITMAP_WIDTH (600)
#define BITMAP_HEIGHT (600)

GtkWidget *window;
GtkWidget *darea;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *button01;
GThread* thread;
volatile int execflag01;
int count;
int time_count;

static void do_drawing (cairo_t *, GtkWidget * widget);

struct
{
cairo_surface_t *image;
} glob;

static gboolean on_draw_event (GtkWidget * widget, cairo_t * cr, gpointer user_data)
{
cr = gdk_cairo_create (gtk_widget_get_window (widget));
do_drawing (cr, widget);
cairo_destroy (cr);
return FALSE;
}
821
(1): 2017/11/01(水)06:37 ID:6RRJjvM+(2/10) AAS
続き
static void do_drawing (cairo_t * cr, GtkWidget * widget)
{
gfloat screen_width;
gfloat screen_height;
gfloat image_width;
gfloat image_height;
gfloat x_scaling;
gfloat y_scaling;
/* ディスプレイの全画面の大きさを取得 */
screen_width = gdk_screen_get_width (gdk_screen_get_default ());
screen_height = gdk_screen_get_height (gdk_screen_get_default ());
/* イメージの大きさを取得 */
image_width = cairo_image_surface_get_width (glob.image);
image_height = cairo_image_surface_get_height (glob.image);
x_scaling = 1.0;
y_scaling = 1.0;
cairo_scale (cr, x_scaling, y_scaling);
cairo_set_source_surface (cr, glob.image, 0, 0);
cairo_paint (cr);
}
822
(1): 2017/11/01(水)06:37 ID:6RRJjvM+(3/10) AAS
続き
static void load_image ()
{
cairo_t *ic;
glob.image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, BITMAP_WIDTH, BITMAP_HEIGHT);
ic = cairo_create (glob.image);
//長方形の描画
{
//色の指定(外枠:Red,Green,Blue)
cairo_set_source_rgb(ic, 0.0, 0.0, 1.0);
//長方形(x,y,width,height)を描画
cairo_rectangle(ic, 0.0, 0.0, BITMAP_WIDTH, BITMAP_HEIGHT);
//長方形の外枠を作る
cairo_stroke_preserve(ic);
//色を指定(塗りつぶし:Red,Green,Blue)
cairo_set_source_rgb(ic, 0.0, 0.0, 1.0);
//長方形を塗りつぶす
cairo_fill(ic);
cairo_stroke (ic);
}
cairo_destroy (ic);
}
1-
あと 180 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.374s*