GTK+プログラミングat LINUX
GTK+プログラミング - 暇つぶし2ch300:login:Penguin
09/10/29 23:20:42 6yKiv2hH
これからGTK+を学ぼうと思っています。
主にLinuxで開発するつもりで、AnjutaというIDEを使ってみようと思いますが、
Windowsマシンでたまにコーディングしたいときにはどうしたらいいんでしょ?
Windows版ってありますか?
Linux板で聞くのは変ですが…。

301:login:Penguin
09/10/30 21:38:43 7aJTkb9U
>>300
ム板にもスレがあることに気づいて
そこの過去情報を読んだら解決しました。
お邪魔しました。

302:login:Penguin
09/11/01 17:23:59 qpVzDXQL
GUIツールキットを比較しつつ、どれがいいか検討しています。
今の第一候補はGTK+ですが、実際に使っている人の声を聞きたいです。
他の候補はQt、wxWidgetsで、言語はC++の予定です。

GTK+
 ・GnomeやXfceで使われているので、ユーザが多そう
 ・ライセンスはLGPL
 ・多くの言語向けのバインディングがあるが、CではなくC++だと少し注意が必要(?)
 ・各OSのネイティブなルック&フィールではないが、テーマによっては近い外観で描画できる

Qt
 ・KDEで使われている
 ・Nokiaがやっていて安心感がある
 ・LGPL、GPL、商用版のQPLは制限が非常に緩い
 ・おしゃれな外観(?)

wxWidgets
 ・GUIの他に多くの機能のラッパが存在して便利
 ・ネイティブなルック&フィール
 ・IDE、RADツールが豊富
 ・日本語の扱いにやや難あり(?)

Ultimate++というのも気になりますが、マイナーだし、日本語が使えない問題もあるようです。

これらは自分で集めた情報なので間違ってるかもしれません。
他にメリットやデメリットがあればどうぞ教えてください。
よろしくお願いします!

303:login:Penguin
09/11/01 21:17:41 lntj8SS+
C++ならQt

304:login:Penguin
09/11/01 22:13:27 qpVzDXQL
>>303
やっぱりGTK+はC++に向いてないということですね。
情報ありがとうございました。

他にも情報があれば皆さんよろしくお願いします。

305:login:Penguin
09/11/01 22:14:04 TdugBe1j
つGLUT


306:login:Penguin
09/11/01 23:32:48 o2Fus8Wv
>>304
gtkmmいいよ。

307:login:Penguin
09/11/02 00:05:28 F2TUeYlu
>>305
GLUTを調べて見ましたが、OpenGLのやつなんですね。
3Dにはあまり興味が無いですが、今後必要になったとき使ってみます。
情報ありがとうございました。

>>306
GTK+はC++との親和性が少し低いけど、gtkmmはC++用で問題ないということですね。
試してみます。
ありがとうございました!

308:login:Penguin
09/11/03 01:21:46 Vebc7itB
rubyでgtkプログラムをしたいんですけど、何かいい開発環境はないですか?
gladeとかでみためは作って変換できるのですが、中で実行するシグナル(っていうんですかね)がどういう感じで使えるかというのがわからないので
調べ調べになってしまいます。通常使ってるのはemacsとnetbeansです。これに似た、もしくはその上で動かせるものはありませんか?
補完とかできたらうれしいのですが。

309:login:Penguin
09/11/03 19:55:27 0PVkcWZ9
逆に「gladeとかでみためは作って変換できる」の部分を
詳しく教えてほしい。

310:login:Penguin
09/11/03 20:05:58 DNzdCjrE
gtk-builder-convertのことかな?

311:login:Penguin
09/11/03 22:30:31 1H0HUjWH
ruby-glade-create-template とかあったよな.

312:login:Penguin
09/11/04 08:03:24 03fE0NL7
クラスライブラリのリファレンス(英語)なら公式サイトでrbbrっていうサンプルアプリとして
置いてあるけど、そういうことじゃないのかな?

313:308
09/11/05 02:27:28 Cf0Et12U
>>309-311
311さんが言ってるみたいにruby-glade-create-templateで作ったgladeファイルを.rbに変換して
オブジェクトは作ったからメソッド書いて自分の思うような動きを作ってちょうだいな。みたいなところまではできます。
しかし、rbファイルを編集するときにrequire 'gtk2'をよんでいるのにemacsでもnetbeansでも補完してくれませんでした。

>>312
rbbrは使ってるOSにパッケージがあったのでそれを入れてみましたが。リファレンスを引けるようになりました!
リファレンスが引けると言うことは補完もできるのでは?と今悩んでいる状態です。

314:309
09/11/06 12:34:31 pFNFtZEf
>>310
>>311
>>313
サンクスです。ググったら
Ruby/Gtk2のチュートリアルに書いてあるね
規制でタイミング逸して返事書かなくてすまん

315:308
09/11/06 17:32:52 1VLamOE6
>>309さんはどんな感じでコードかいてますか?
リファレンス見ながらかいている感じですか?

316:login:Penguin
09/11/07 07:20:09 PbDi/n2M
>>302
亀レスながら俺も検討中なので...
GTK+はこれからやってみるので置いといて、

Qtはさすがに良くできてるけど、簡単なことをやろうとしても多くのクラスを
使わなければならず、また抽象的な概念みたいなもの(データモデルとか
データアイテム)とか出てきて、簡単に「サクッ」と作る感じではないので、
習得に時間が掛かりそう。「エキスパートのための高級品」のイメージ。
ウィジットの種類も豊富だし、一つのウィジットが多くの機能を持っているので
困ることはなさそう。

wxWidgwtsは確かにツールが豊富だけど、決定版と言えるものはイマイチ
ない気がする。wxDev-C++が導入簡単だけどデバッガーが環境や条件に
よって動作しないトラブル発生中。もう随分前に発覚したのになかなか
直らない。Delphiで書かれていて、近くC++に移植が予定されているようだ。
使えるのはCode::Blocksかな?

wxWidgwtsはQtよりは理解しやすいと思う。日本語の扱いは別に問題ないよ。
ウィジットの種類は豊富だけど、肝心なものがなかったり...
俺はスピンボタンつきの数値専用エディットボックスで、実数を
扱いたかったんだが、これが標準ではない。3rd Party製があるけど、
IDE/RADで、非標準のウィジットを簡単に取り込める仕組みを
持ったものがないので、結局手で書くしかなくて面倒。

Ultimate++は使い勝手が良くない。というかユーザーインターフェースの
設計が下手で、直感的に使えない。それと日本語の扱いに問題がある。
Windowsの話だけど、エンコーディングにCP932(SJIS)が選べないので、
utf-8にするしかない。それでもC++版Hello World!を「こんにちは 世界!」
にして実行したら文字化けしたので、カッとしてアンインストールして
しまった。

以上、ご参考まで。

317:login:Penguin
09/11/07 07:40:28 h9ilEYN9
Lazarus とか。 

318:login:Penguin
09/11/07 07:53:25 wJdSUuBx
gtkmmを薦めてるのがいるが真に受けんように
C++でまともに動いたら、scim-bridgeみたいなモノを作る羽目にはならん

319:login:Penguin
09/11/07 11:52:06 CPjNRklA
面白いのはわかるが、今更そんなんやったって・・・
激しくつまらんけど、これからはAIRですよ

320:login:Penguin
09/11/07 13:30:53 pZqg2eyF
いや、これからはJavaですよ
作ってて面白いしね


321:309
09/11/07 15:04:13 pqmmO2Ng
>>315
そうだね。
オンラインリファレンスを地味に検索しながら
emacsのruby-modeで書いてるよ。
methodsとかのメソッドで確認したりするぐらい。
emacsで構文解析してメンバ関数だのメソッドを補完する環境って無いんじゃないかな。
無作為に辞書から補完するのはあるかもしれんけど。
netbeansはよく知らない。
Ubuntuだと「追加と削除」からリRuby Browserというリファレンスビュワーが落とせるよね。
これはRuby/Gtk2のクラスも見られたと思う。

322:login:Penguin
09/11/07 19:56:24 nXIVDau4
型がなんでgintやgcharなの?
intやcharではダメなわけ?

C言語とのこういうちょっとした違いは
他にもいろいろあるの?


323:login:Penguin
09/11/07 20:43:43 P9pTNgo8
> 型がなんでgintやgcharなの?
移植しやすくする為の措置じゃなかったっけか

324:login:Penguin
09/11/07 21:04:17 nXIVDau4
「g」が付いてるほうが移植性が高いのかねぇ。

みんなはそういうのをどうやって覚えたの?
解説本とかあまり売ってないみたいだけど…。

325:login:Penguin
09/11/07 21:25:19 NL8bJnRF
>>nXIVDau4
たとえばlongが64bitの環境でも、glong的に32bitであってほしい場合にlongの代わりにintやint32をtypedefするとかな。
データ構造の隠ぺいとかはWeb上の先人の残した情報だったり、技術書立ち読みだったり、Win32やNSPRとか同じことやってる実例を見たりとかで知ったよ。

326:login:Penguin
09/11/07 22:58:20 FPX1oLqZ
>>324
C言語はintとかの定義に幅があるから
コンパイラが違えばintのサイズも異なったりするので
厳密に定義した独自のintを用意するわけですよ

先月出た本はどうでしょう
URLリンク(www.amazon.co.jp)

327:login:Penguin
09/11/07 23:54:07 Iq2jGS9i
gint32、とかにした方が判りやすいのに

328:login:Penguin
09/11/08 03:02:52 A1QtHV1W
>>325-326
なるほど、なんとなくわかった。
ありがと。チュ!

本は今度本屋で見てみる。


329:login:Penguin
09/11/08 22:19:03 A1QtHV1W
GTK+をこれからやろうと思ってますが、C++よりC言語のほうがいいんでしょうか?
昔CもC++も少しずつかじりましたが、どっちも中途半端に終わって、今は頭の中でゴッチャになってます。
GTK+を始めるこの機会にどちらかをちゃんと勉強するつもりですが、どっちがいいか迷ってます。

CよりC++のほうが言語として優れていたり、C++を覚えたほうが何か有利だったりするんですかねぇ?
gtkmmというのを使えばC++でもいけるんですよね?
何かアドバイスをもらえればうれしいです。

330:login:Penguin
09/11/08 22:48:08 iZONJSh7
>>329
有利かどうかでいえば、一山いくらのプログラマとしても仕事に付けるかという観点ではC++/Java/PHP/VBあたりだろうな。
有利不利なんぞを気にするんなら間違ってもWindowsかWebアプリ、携帯以外見向きもしないほうがいい。GTK+なんかもってのほかだ。

マジレスするなら、C++にあまり慣れてないならCでGTK+やるのがいい。
ついでにPythonあたりも齧っとけばC+GTK+で面倒な部分もこなせるし、Linux方面のプログラムを開発するのに不自由はしないだろう。

331:login:Penguin
09/11/08 23:24:58 3wmSljPh
>>329
Cはスーパーマクロアセンブラ、C++になって高級言語の仲間入りっつー感じかな。
ある程度規模の大きなプログラム作るんなら、絶対C++の方が有利。
Cははっきり言って時代遅れ。C++は習得しておいた方がいいよ。
組み込み系なんかだと、また話は変わってくると思うが。

GUIツールキットだって、殆どのものがC++を念頭に置いて作られてる。
Cが標準でC++ラッパーを後付けしたのはGTK+くらいなもの。
まぁ、それだけ歴史が古く、練り上げられてるとも言えると思うけど。

332:login:Penguin
09/11/09 00:10:55 xrkj026G
>>330-331
どうも!
「C++に慣れてないなら」っていうのはオブジェクト指向が壁になるかもしれないってことですかねぇ。
一応JavaやPHPもちょこちょこやってるので、理解はしてます。

お二人の意見を合わせると、C++のほうがいいけど、慣れてなかったり自信がなかったりする場合は
Cにしておくのが無難ってとこですね。

もうちょっと考えてみます。
とても参考になりましたー!


333:login:Penguin
09/11/09 00:31:21 GPAwpvGp
>>332
オブジェクト指向が壁になるからではないよ。ほぼ1からC++とGTK+(とgtkmmの固有事情)やるよりはCとGTK+のほうが楽かなとね。
一応gtkmm以外にもJavaとPHP向けのバインディングがあるから、Cでやるのが面倒なようならそれぞれJava-Gnome/PHP-GTKで調べてみるといい。

334:login:Penguin
09/11/09 01:09:23 GiNGaxO1
gtkmmの固有事情くわしく

これから始めようと思ってるんだけど
>>132, >>318とか見ると気になる

335:329
09/11/09 01:13:18 xrkj026G
>>333
Cのほうがやっぱ楽なんですか。
といいつつC++も捨てがたいけど、>>334さんと同じくgtkmmの固有事情が気になります。

JavaやPHPのやつも存在は知ってましたが、CかC++でアプリを作れるようになりたいなぁと思ってて…。

336:login:Penguin
09/11/09 01:49:16 9bGbNsmw
>>333, >>334

>>132, >>318の言ってることについては心当たりないが、GtkTreeIterだかのバインディングにメモリリークのバグがあるとかいうブログの記事を見たことがある。
固有事情とは言いすぎた。GObjectの仕組みに加えてC++のオブジェクトとの絡みで素のGTK+より覚えることが多くなるかなと思った故の発言だ。

>>334
C/C++ともほぼ未経験なら日本語ドキュメントや和書もある素のGTK+のほうが理解しやすいのではと思ってC+GTKを勧めたが、単純にGTK+のウイジェットを使ってウィンドウアプリケーションを作るならgtkmmのほうが楽なはずだ。
素のGTK+をCで使用する場合、頻繁に型キャストのマクロを使うし、新たなウィジェットを作成する際にはGObjectの動的型システムを素で使うことになるからその点面倒だ。
gtkmmであればその点いくらか楽ができる。だが、ほかの言語バインディングでも使えるウィジェットを作成するとなると素のGTK+の動的型システムの流儀も触れる必要があるから、C++の知識に加えてGObjectの仕組みも知る必要がでてくる。

Javaをある程度使えて、GObjectの動的型システムには触れずにウィンドウアプリケーションを作りたいということであれば改めてgtkmmのほうを

337:login:Penguin
09/11/09 09:55:18 H/aMIY+I
わざわざPerlで扱ってる変態もいるしな


338:login:Penguin
09/11/09 10:14:55 LeSNQMah
>>335
俺は Python でやってる。
C を使っている gtk+ プロジェクトだったら C で書く。
そんなに違いはないし、簡単。

Cだとヘッダーにいちいちプロトタイプ宣言しなければならなかったり
毎回コンパイルしなければならないのが面倒だからPython使ってる。
楽チン。

339:login:Penguin
09/11/09 15:19:07 dkYv1Xb9
>>337
ぇー最近perlでGTK触りはじめたけど、変態じゃないやい><

340:login:Penguin
09/11/09 15:40:43 nWvFWYHF
とにかく完成するのが目的なら自分の好きな言語でいいじゃん。おれはRubyだぜ。

341:login:Penguin
09/11/09 18:21:40 EMO5BJHN
GTK+はバインディングが多いのがいいよね

342:login:Penguin
09/11/16 16:13:58 VCRzBqJE
なんだかんだ言って、Cのコードは寿命が長いんだよね。
コストベーシスで考えると、GTK+の場合は全てCで書いた方が
いいと思う。他のメジャーなソフトはほとんどCだし、
インテグレーションもし易いよね。


343:login:Penguin
09/11/16 17:18:31 gFc8JNPu
Cは初心者向けの本を昔読んで、当時はなんだか難しいなぁって思ったけど、
GTK+に挑戦したくてもう一度読んでみたら大して難しくなかった。

配列、関数、ポインタ、構造体の使い方の基礎がわかってたらGTK+を扱える?
この程度の知識で始めるのはなんか怖くて・・・。

344:login:Penguin
09/11/16 17:21:51 VCRzBqJE
GTK+なら、型が決まっているから、
ほんとに基本的な知識だけで十分だと思う。
マクロやプリプロセッサもよく使われているけど、
非常にシンプルなコンセプトだし、問題ないとおもう。

345:login:Penguin
09/11/16 20:35:58 gFc8JNPu
>>344
どうも!
今年中に始めよーっと!!

346:login:Penguin
09/11/16 21:19:38 tJXAF2DJ
もう「今年中」とかいうセリフが聞かれる時期になったか。

347:犬山ぽち丸
09/11/19 00:11:09 CpUTPEU6
Perl でこんな感じのを書いてみました。
URLリンク(pochimaru.seesaa.net)

次ページ移動ボタンをクリックする事で次ページを表示したいのですが、
このままでは期待するように動きません。
現時点の表示をクリアして次ページを表示するにはどうしたらいいのでしょうか?


348:login:Penguin
09/11/19 05:10:52 kHCd9OdN
# perlって聞いた時点で見る気なくした

349:login:Penguin
09/11/20 14:06:49 TNyOV+9k
DrawingAreaをAspectFrameで包むと上下左右に、
GNOMEでは1ピクセル、
Fluxboxでは2ピクセル隙間が開くんだが、なんとかならないものか

350:349
09/11/20 14:52:09 TNyOV+9k
set_border_width(0)でもだめだった

python-gtk2 2.16.0
python-glade2 2.16.0
gtk 2.18

351:login:Penguin
09/11/21 12:33:26 cf2l5sy0
gtk2.18.3をubuntu9.10でやっているんですが
キーを押し続けている状態を知る事はできないんでしょうか?
今はkey-press-eventとkey-release-eventシグナルを使っているんですが
キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて
押し続けている状態を知る事ができません。

352:login:Penguin
09/11/21 15:35:08 zEcsEEOn
key-pressのあとにkey-releaseがなければ押し続けていることになる

353:login:Penguin
09/11/22 01:06:56 EckaNW4z
>キーを押し続けているとkey-press-eventとkey-release-eventが交互に連続して飛んできて
押しつづけているのにrelease-eventがくるとかキーボードぶっこわれてるんじゃね

354:login:Penguin
09/11/22 08:57:13 OlBHF5u9
>>351
Xのレベルではそれが通常の動作(モディファイアキー(の一部)以外では)。
Xはautorepeat時にKeyReleaseと続くKeyPressでタイムスタンプを同一にして
送ってくるので、GDKはそれを利用して>>352のように見せるコードが
一応入ってはいる、が、環境や同時に利用するプログラムといった条件によっては
それが働かないみたい。
自分の環境だけ考えるならGDKの該当部分に手を入れて常にその動作をするように
してしまうのが簡単。そうでないならやはり同様に次のイベント
(gdk_event_peekで得るのかな)とそのタイムスタンプを見て判断するんじゃないかと。

355:login:Penguin
09/11/22 11:40:29 xNfLAKy+
>>352
>>353
>>354
レスありがとうございます。
gdk_event_peekはnullが返ってきたのでダメでしたが
gdk_event_getはタイムスタンプ同一のメッセージがしっかり返ってきました。
おかげさまで上手くいけそうです。

356:login:Penguin
09/11/22 22:53:53 LzN5AhP5
>>347
こんな感じでどうでしょう?

163a165,168
> my $currentObject = $scrolled_window->child;
> if($currentObject) {
> $currentObject->destroy;
> }
204a210
> $drawable->show;
224a231
>


357:犬山ぽち丸
09/11/26 19:27:51 bDLkSh53
>>356
動かしたいように動かす事が出来ました、ありがとうございます。
とても基本的なところで躓いてしまってたみたいで、お恥ずかしい限りです。


358:login:Penguin
09/11/27 20:56:42 w3OKtepz
GtkWidget
↑ ↑
GとWが大文字
これに気付くのに4日掛かった
コンパイルが通って空のウィンドウが表示されたときは
雄叫び上げちゃったよ。

359:login:Penguin
09/11/27 21:30:47 RzRcFxle
www

とりあえず、なんだ、おめでとう

360:login:Penguin
09/11/27 21:51:12 HBGtWPJy
Debianスレで GTK+ でウィンドウ出すのに四日かかったって言ってた人かw

361:login:Penguin
09/11/29 00:46:08 guffPLRY
おめでとう、マジで
さぁ早くシグナルをコネクトしまくる作業に戻るんだ

362:login:Penguin
09/12/01 22:14:30 sy3qzyYB
>>361
ぬるぽっ!

363:login:Penguin
09/12/01 22:23:34 xoJE4V4A
>>362
ガッ
って言ってほしいのね。
もぉ、寂しがり屋さんなんだからぁ。

364:login:Penguin
09/12/05 20:49:17 CO55p0ew
なんでこのスレ過疎ってんの?
プログラマー不在のスレなの?

365:login:Penguin
09/12/05 21:08:39 Gmpm8vF/
>>364
そう思うならまず率先して何かを作って公開してみては如何でしょうか?


366:login:Penguin
09/12/06 00:50:56 fNpRY7Ok
話題がないだけでしょ。

367:login:Penguin
09/12/07 17:19:37 CENTWTgC
良くも悪くも枯れてるからな

368:login:Penguin
09/12/07 20:01:28 LkAo4E7O
gtk2hsで書いてみたけど思ったより使いやすかった

369:login:Penguin
09/12/13 11:19:39 naHBDIjP
gtkで外部装置から受信した温度データをグラフ描画するソフトつくってる。
左3/4が描画領域で残りに現在時刻や表示倍率の設定がある。

連続してデータ受信すると、時刻表示のタイマーがとまったり、倍率設定
のコンボボックスが操作できなくなるので、スレッド分けしようと思うのだけど
expose_eventを別スレッドにすることって可能?

370:login:Penguin
09/12/13 11:42:32 P93DdDFa
できそうな気がするけど。
とりあえずやってみたら?

371:login:Penguin
09/12/16 20:46:38 laS/Dg3j
>>365
作る気になれるようなことが必要なのではないですか。

372:login:Penguin
09/12/16 20:51:22 dPFj9y5E
>>369
すごいですね
勉強のためにぜひソースを見せて頂けないでしょうか?

373:login:Penguin
09/12/16 20:53:19 dPFj9y5E
もしくは、ソースリストを公開しているwebページを
ご存知でしたら教えてください。

374:login:Penguin
09/12/16 20:54:06 6soPE05o
    ∧__∧
    (´・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"


375:login:Penguin
09/12/16 21:47:42 c63j0iz9
受信を別スレッドでやるのが普通じゃないの

376:login:Penguin
09/12/16 22:44:30 Q8cS+VLW
ブロックする可能性のある処理は別スレッドにしないと止まる

377:login:Penguin
09/12/16 23:39:53 jaaomSx0
Exposeを別スレッドって、ぷっ。
さすがLinux。

378:login:Penguin
09/12/17 02:29:15 F8Jdsro2
何がおかしいのかよくわからん。

379:login:Penguin
09/12/26 01:54:27 XiSC9KS7
GTK+の本を買おうと思うんですけど、この2冊だとどちらがいいですか?
・入門GTK+
・Foundations of GTK+ Development

プログラミングはCの基礎がわかっている程度です。
PHPもやってます。

380:login:Penguin
09/12/26 13:18:25 6MLS1ve1
両方買えばいいじゃない。
あと、入門GTK+の方は作者がホームページで
本の内容を公開し始めてる

381:login:Penguin
09/12/26 14:29:39 YM2nDrzN
Foundations of GTK+ Development は一部 google books にでてる

382:379
09/12/27 00:54:04 HfaPMpb7
>>380
両方買うと、結局一冊は読まないままになったりするタイプなので…。
あと、書籍代はケチるべきじゃないと思いますが、深刻な金欠状態なのです。

入門GTK+の作者サイトでの公開について、情報ありがとうございます。
休暇中に目を通してみようと思います。

>>381
Amazon USのレビューで「ネット上で読める」と書いてあったので、どこにあるのか気になってました。
書店になくて立ち読みできなかったので、Google Booksで読んで判断します。

どうもありがとうございました。

383:login:Penguin
09/12/27 08:12:49 Ri5kV8GM
GTK+は公式チュートリアルが結構充実している方だと思うので、
それ読めばとりあえずリファレンスとサンプル眺めつつ使えるようになる。

それでも本が欲しくなるならあるウィジェットの使い方を
詳しく書いていて欲しいだとかマルチスレッドとの兼ね合いが
知りたいだとか(あまりいい例が出てこなくてすまん)
求めるものがはっきりしてくると思うので、
それから本を選んでもいいんじゃないだろうか。

384:379
09/12/27 20:27:25 HfaPMpb7
>>383
公式チュートリアルのことを知りませんでした…。
ダウンロードできたので、スマートフォン等にコピーして移動中でも読めそうです!
プリントアウトして持ち歩くのもいいかもしれません。
最終更新日が2002年10月27日と古いんですけど、問題ないですよね?

書籍を買ったほうが最後まで読みつづけようという意欲が持てる気がしますが、
とりあえず公式チュートリアルを読もうと思います。

ちなみに「Foundations of GTK+ Development」はGoogle Booksで見てみたら
とても良さそうでした。
「入門GTK+」のほうは著者ページで見つからなかったです・・。

385:login:Penguin
09/12/28 02:58:56 CtQUEG8Y
> 最終更新日が2002年10月27日と古いんですけど、問題ないですよね?

……?

公式チュートリアルは
URLリンク(www.gtk.org) でズバリ The Official Tutorial といってる
URLリンク(library.gnome.org)
だよ。
GTK+のソースコードのtarball中にも入ってる(docs/tutorial/以下)。

386:login:Penguin
09/12/28 07:38:54 RlHoBGgo
>>385
Tutorial Availabilityのページにあるリンク(fURLリンク(ftp.gtk.org))から
ダウンロードしました。

387:login:Penguin
09/12/28 11:47:38 T0tfWrHc
自分でいいと思ったならそれ読め。もう知らん。

388:login:Penguin
09/12/28 22:21:50 Uh78zlUy
そう言うな。明日になればまたみんな仲良しななしさん

389:login:Penguin
09/12/28 22:55:34 AK9LsQvN
>>387 何?どうしたの?

390:login:Penguin
10/01/09 18:48:59 khh4I0eb
今日からGTK+を始めてみた
今までwindowsのvisual stdioしか使ったことなかったから、パスさえ通ってりゃ
#g++ hello.cpp
だけでコンパイルをやってくれると思っていた
今日一日かかって`pkg-config --cflags --libs gtk+-2.0`を知って
ウィンドウを出せた
疲れた

391:login:Penguin
10/01/10 13:16:43 3oa4ldyN
VisualStudioだってオプションからディレクトリの設定しなきゃ
ビルドすらままならないだろうに、何言ってんだコイツ

ましてやコマンドラインからCL.exe呼び出すんなら、vcvarsall.batなり
vcvarsall.batで設定される環境変数群を、予めユーザー環境変数に定義して
おかなければCL.exeもg++と同じエラー吐いて止まるだろうに・・・

392:login:Penguin
10/01/10 14:58:37 zlmG+3hJ
pixmapの背景色を黒くしたキャンバスを作って
その上に画像と文字を描画してて、文字は白

これに対してニコ動のコメント表示/非表示みたいなことをやりたい

文字を描画するときのみXORモードで書いてるんだけど
背景の黒の上に書かれた物は消えるけど、画像の上に書かれた
物は黒抜き去れて残ってしまう

説明わかりにくいかも知れないけど、なんか良い方法無いかな

393:login:Penguin
10/01/13 03:10:04 hKXsU3qa
文字を描画しないだけでいいんじゃないの?

394:login:Penguin
10/01/13 13:45:44 rT8A3kXe
>>390
チュートリアルとか見てないの?

395:login:Penguin
10/01/14 01:41:29 2htHqmwQ
空気の福田はともかく、徳井が苦手でねぇ…

396:login:Penguin
10/01/15 10:31:57 2tKD4R7l
GTK+を使って記述されているソフトとしては
gimp以外だとどんなものがありますか?
ソースリストを読んで勉強したいのですが

397:login:Penguin
10/01/15 11:34:43 +6ILVUJ5
>>396
URLリンク(ja.wikipedia.org)
URLリンク(www.gtk.org)

398:login:Penguin
10/01/16 13:06:47 st13uJnk
2chブラウザのJDとか、画像ヴューアのgqviewとか。

399:login:Penguin
10/01/23 07:49:03 c81zxfOz
ツールバーにウィンドを表示しないようにするにはどうすればいいの?

400:login:Penguin
10/01/26 09:24:59 WUy9SOAf
 linux 初心者です。C言語はバリバリです(ウィンドウズで)最近、fedora12 に乗り換え、システムを移植中なんですが、
ウィンドウ関連のところで、GTK+なるものが必要とのこと。そこで、インストールしましたが、
実際のソースコードをコンパイルしてもエラーがでます。
 勉強不足の所をご指摘いただけないでしょうか?

gtk+ インストール
yum -y install gtk+
でインストールしました。 800KBぐらいだったと思います。
そこで、次のコードを emacs でコンパイルします。
#include <gtk/gtk.h>

int main( int argc, char *argv[] )
{
GtkWidget *window;
gtk_init( &argc, &argv[] );
window = gtk_winidow_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_show( window );
gtk_main();

return 0;
}
すると、error : gtk/gtk.h: そのようなファイルやディレクトリはありません。
その他これに関連するエラーがでます。
gtk/gtk.h が無いのか、と思って、
もう一度 gtk+ をインストールしようとすると、
gtk+-1.2.10-69.fc12.i686 はインストール済みか最新バージョンです
何もしません
とでます。
...よろしくお願いします。


401:login:Penguin
10/01/26 11:26:21 TXiGdVqu
チュートリアルどおりやれば躓かないとおもうんだけどな
gtk2, gtk2-develを入れて
gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0`

402:login:Penguin
10/01/26 16:11:56 R1nywYDP
>> 401
 遅くなりましてすいません。返信ありがとうございます。
うまくいきました。
ウィンドウが表示されたとき、感動しました。
でも、emacs からはコンパイルできませんでしたので、リンカーあたりの
設定かな?と思っています。
 何はともあれ、ありがとうございました。


403:login:Penguin
10/01/26 16:57:00 R1nywYDP
またまたお願いいたします。
linuxにおいて、
windowsの
SetCursorPos()
GetCursorPos() に相当するものはありますか?
参考リファレンスなど紹介してもらえれば助かります。

404:login:Penguin
10/01/26 17:26:41 Up0ueX3p
>>403
URLリンク(library.gnome.org)

405:login:Penguin
10/01/26 18:04:33 R1nywYDP
>>404
 返信ありがとうございます。
...勉強します。

406:login:Penguin
10/01/26 18:11:45 OKgnAGh0
>>402
pkg-configコマンドが何なのか調べるんだ。

407:login:Penguin
10/01/28 14:40:04 YXchBGq5
はじめまして。GTK初心者です。

困っていることがあります。
gtk_init()でハングするんです。

1. gtk_init()を手動でコール出来るようプログラミングし、rc.localでそのプログラムを起動。
2. xwindow(gnome)ログイン後にgtk_init()をコールさせる。

上記の2の時点でgtk_init()でハングしているらしいです。
(gtk_init()下行のログが出力されない)

原因や対処法をご存知の方いらっしゃいませんか?


408:login:Penguin
10/01/28 18:04:22 VFHNmy96
>>407
突っ込みどころが3点ほど。

・rc.localに登録して起動し、さらにログインした後にも起動・・・?

・gtk_init()だけ実行するプログラムを作ったの?
 だとしたら壮大な勘違いをしている。gtk_init()関数が何をする関数なのか調べるんだ。

・「ログ」とは何のログ?ハングしているらしい、では分からないのでソースをUPするんだ。


409:login:Penguin
10/01/28 18:34:10 YXchBGq5
>>408
ありがとうございます。すみません、説明不足でした。

ちょっとソースは長いので文書のみで失礼します。

プログラムは、rc.localで起動した時点ではgtk_init()をコールしない作りにしてます。
その後、ログイン後にコンソールから別プログラムを通してプロセス間通信によりコマンドを送信、
そしてコマンドを受信した時点で gtk_init()をコールさせる形にしてました。

ログは、
 printf("call gtk_init\n");
 gtk_init();
 printf("call end\n"); ★
のようにして、★が出力されない感じです。

その後の調査で、どうやら rc.local起動させた場合、環境変数 DISPLAYなどが
全く設定されていないようです。

そこら辺に問題有りかと思っているのですが、なにぶん、勉強不足でして。
時間も無いので質問させて貰った次第です。


410:login:Penguin
10/01/28 18:40:22 A3FmJC2O
DISPLAYも何も、Xの起動はrc.localより後なんだぜ?
プログラム分けるんじゃ駄目なんかい

411:login:Penguin
10/01/28 18:44:27 0EFvnz24
時間も無いので
時間も無いので
時間も無いので
時間も無いので
時間も無いので


412:login:Penguin
10/01/28 19:24:50 bFXQct0B
>>409
「GTK初心者」と言うよりLinux&プログラミング初心者のようですね。

貴方にGTKはまだ早いです。環境変数やXの基本が理解できていないと
説明されても分からないと思いますので出直してきて下さい。

413:login:Penguin
10/01/28 19:30:37 uG/wS28i
お金も無いよ
お金も無いよ
お金も無いよ

414:login:Penguin
10/01/28 19:32:04 YXchBGq5
>>410
ありがとうございます。
inittabで初期化レベルを分けていることもあり、
てっきりrc.local前に起動処理が走っているかと勘違いしていました。
お恥ずかしい。

>>412
おっしゃるとおりです。
出直してきます。


415:login:Penguin
10/01/28 21:55:00 WU2RMXov
>>414
DISPLAYが設定されてなくて、Widget使わないなら、
GObject関係を使うためだけなら、g_type_init ()すれば良いよ。
有名なエラーが出るからgtk_init()使ったってエスパーしてみた。

416:login:Penguin
10/02/07 16:35:02 jjKybwb6
書籍「入門GTK+」のP31のプログラムを打ち込み、何度も確認したのですが、どうしても下記のエラーが出てしまいます。
何が間違っているのか、ご教示願います。
gtk-sample.c: In function ‘create_menu’:
gtk-sample.c:64: error: ‘acitons’ undeclared (first use in this function)
gtk-sample.c:64: error: (Each undeclared identifier is reported only once
gtk-sample.c:64: error: for each function it appears in.)

gtk_action_group_add_actionsの値でエラーが出るようです。関係する記述を確認しましたが問題ありません…


417:login:Penguin
10/02/07 17:08:07 KhA+E7Mu
エラーメッセージを読んでみましょう
acitonsが宣言されていませんよ
actionsと間違えていませんか?

418:login:Penguin
10/02/07 17:18:05 jjKybwb6
>417さん
ごめんなさい、本当に気づきませんでした。エラー文を読んでいたのに…ありがとうございました

419:login:Penguin
10/02/09 01:35:25 gRID6Pu9
ググれ秀才

420:login:Penguin
10/02/10 20:29:31 y7MwWf/g
gtkmmをこれからやってみようと思ってるけど、
入門GTK+を読みながらC言語で練習するより
最初からgtkmmでC++使ったほうがいい?

gtkmmの入門書がないみたいなので、
取っかかりとして入門GTK+を候補にしてるんだけど…。

421:login:Penguin
10/02/11 13:48:24 AIMyey0J
>>420
最終的にC++で書くのが目的なら、↓みたいなところがあるからC++で書けばいいんじゃない。
gtkまわりの日本語の情報が少ないから、言語は違うけどたまに参考にさせてもらってるよ。
URLリンク(book.geocities.jp)


422:login:Penguin
10/02/12 15:44:26 DJstgHYM
>>421
そのサイト見てみます。
ありがとう。

423:login:Penguin
10/02/17 19:33:47 Ozbv3EUx
GTK+ 1.2 で作った古いツールを 2.0 で動くように手直ししてるんですが、とりあえず Makefile の中で

# GTK+ 1.2
CFLAGS = `gtk-config --cflags`
LIBS = `gtk-config --libs`

# GTK+ 2.0
CFLAGS = `pkg-config --cflags gtk+-2.0` -DGTK_ENABLE_BROKEN -DGTK_WINDOW_DIALOG=GTK_WINDOW_TOPLEVEL
LIBS = `pkg-config --libs gtk+-2.0`

てな感じでお茶を濁して動かしているんですが、ソースを全面的に 2.0 対応するコストって
どれほどでしょうか?
150本ほどのちまちましたツールがあって、2.0 で起こしたツールが2割程度、後の8割は、
前記のとりあえずリビルドです。

424:login:Penguin
10/02/17 19:42:41 TkV44uU+
1.2のランタイムぐらい入っててもいんでない?

425:login:Penguin
10/02/21 14:06:19 pTXZtDIq
ちょっと自前で描画しようとすると、gdkとcairoが混在していて
煩雑としてるなぁ。
少なくともGDKの描画関連のAPIはもういらないだろう。
3.0辺りでばっさり消すとかしてもいいんじゃないか。

426:login:Penguin
10/03/11 00:46:30 Vm2wsjJM
GTK(+glade)を使ったあるプログラムを
・HP-UXサーバ
・RedHat Linuxサーバ
でそれぞれコンパイルおよび動作させ、
別のLinux端末に表示させたところ、
表示や動作自体は問題無いんだけども、
エディットボックスへの入力で
RedHat Linuxの方は日本語入力を受け付けてくれません。
ちなみに、それぞれに入っているGTKはともに1.2です。
SCIMとかの環境は、一見同じっぽいですが・・・・
どこか見るべき箇所はあるでしょうか?

ちなみに、glade自体も
HP-UXは日本語入力を受け付けてLinuxサーバの方は
日本語入力を受け付けてくれません。
gladeの問題なんですかねぇ・・・?

427:login:Penguin
10/03/12 16:52:20 sdgtdQtC
Gtk::Dialogの派生クラスを作成してある条件の時表示させています。
表示後一定期間経過したら自動的にそのダイアログを閉じたいのですが、
どうすればいいのでしょうか。
特にダイアログにこだわっているわけではありません。
何かメッセージを表示 -> 一定時間後に自動的に消去
が実現できればいいです。
よろしくお願いします。

428:login:Penguin
10/03/12 19:39:46 37m6gC+E
>>427
g_timeout_add関数ではだめでしょうか?

429:login:Penguin
10/03/12 19:41:48 WSSuZVVD
>>428
そこはらめぇーーーー

430:login:Penguin
10/03/16 23:40:15 u16nCOLZ
gtk_widget_drawを呼ぶとたまにアプリが落ちる
調べたらgtk2では非推奨になってた
かわりにgdk_window_invalidate_rect使えって書いてあったから
それ使うようにしたら、exposeイベントハンドラに入ったり入らなかったりするようになった



431:login:Penguin
10/03/19 03:10:05 pTXFbkuH
Xawで作られたソフトのWidgetをGnomeテーマのスキンっぽく
変える方法ってありますか?Xaw3dみたいな

432:login:Penguin
10/03/22 18:34:33 gITq0f63
>>427
作ってみた。たぶん、427はここを見てないだろうけど
#include <gtk/gtk.h>

gboolean timeout(gpointer data){
gtk_dialog_response( GTK_DIALOG(data), GTK_RESPONSE_ACCEPT );

return FALSE;
};

int main (int argc, char **argv){
guint tag;
GtkWidget *dialog;

gtk_init (&argc, &argv);

dialog = gtk_dialog_new_with_buttons ("My dialog", NULL,
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);
tag = g_timeout_add_seconds( 2, timeout, dialog );
gtk_widget_show_all (dialog);

gtk_dialog_run(GTK_DIALOG(dialog));

g_source_remove(tag);

return 0;
}

433:login:Penguin
10/05/01 02:23:02 ZoBub0ZC
あるデータファイルをどんどん読んで処理しながら、1秒に1回その途中経過を
Windowに表示する、みたいなプログラムを書こうとしています。

Windowに表示する部分は、gtk_main()を呼ぶ前に、g_timeout_add(1000, draw, NULL)
のようにしてタイムアウト関数を使えばいいとして、データファイルを読み込んで
処理する部分は、どこに書けばいいのでしょうか?
スレッドとかを使わずにやりたいのですが。

434:login:Penguin
10/05/01 18:51:28 lTmE6Ym2
g_io_add_watchとか?

435:login:Penguin
10/05/01 21:52:51 5eA3cNHe
LinuxでGTK+やってる人はWindowsでも主にGTK+で書いてる?
WindowsのAPIは使いませんって人いるのかな。

436:login:Penguin
10/05/02 00:32:37 Bdebw0Wa
そもそもWindows使いません。

437:login:Penguin
10/05/02 06:00:37 J+HCMgwe
>>433
スレッドを使わない方がめんどくさいと思うんだけどね。
ずーっと処理し続けて一秒に一回描画するって事だと
その処理の間は入力受け付け無くてもOK?
その為のスレッドなんだけどなぁ。

シングルCPUでもそう言うことが出来るのがスレッドの良いところ。

それでもスレッドを使いたくないというなら、こまめにシグナル飛ばしっこ
するしかないと思う。


438:login:Penguin
10/05/02 21:48:38 uNQYZGNa
簡単なシミュレーション用のGUIラッパ作りたんですが、
Qt4とgtkmmどっちが作るの楽ですか?
どっちもバグてんこ盛りそうで、javaやM$畑に生まれたかった

439:login:Penguin
10/05/02 22:14:42 WSA7U0rv
>>438
マジでバグテンコ盛りだからいまからでも上にJava+Swingあたりでやらせてくれって掛け合ったほうがいい。
ちゃんと上にQtもGTK+もバグテンコ盛り過ぎてプロダクションレベルに使えないって直訴するんだぞ。

440:login:Penguin
10/05/04 08:25:25 i62yYai1
>>438
vala とかどうか。バグが多いかどうかはプラットフォームに
よる部分も多いと感じるが…win ならC#で組むのが楽だとは思う。

441:login:Penguin
10/05/04 09:52:32 gZYcN+Ue
>> 439
使いこなせていないだけじゃないの。

442:login:Penguin
10/05/04 21:20:07 C0XJN+7X
なんでこのスレ、ム板じゃないの?
SDLとかはちゃんとム板でやってるのに
なんでGTKはのけ者なの?
いじめに合うの?

443:login:Penguin
10/05/04 21:28:25 9ORU/lJS
Gtkプログラミング on Windows!!!
ってスレがム板にあるけど?
スレリンク(tech板)

444:login:Penguin
10/05/04 21:36:12 C0XJN+7X
窓専用じゃん。

445:login:Penguin
10/05/04 21:47:13 9ORU/lJS
自分で立てればいいぢやん

446:login:Penguin
10/05/05 17:49:24 NLGDqQjm
まぁええやんここにも有っても
どうせ両方見てるし

447:login:Penguin
10/05/07 23:05:29 ZSmA/qjk
>>433
g_idle_add関数がいいかも。

>>435
WindowsでもGTK+を利用してるけど、必要ならWinAPIも利用するよ
ちないに、LinuxのGTK+とWindowsのそれとは挙動がちがうことがあるから
注意が必要



448:犬山ぽち丸
10/05/22 13:39:02 CFJ0lXX6
以前ここで質問してご教示いただいた事を参考にして、
縦書きビューワーを作ってみました。

ぽち*ろぐ: ぽちたて 0.1.0 をリリースしました
URLリンク(pochimaru.seesaa.net)


449:login:Penguin
10/05/25 09:28:21 wq6kVR7V
>>448
おめ!

450:login:Penguin
10/06/16 00:53:38 U5l5xiNY
Xサーバーのdepth=15bit下において以下のコードで色がおかしくなります。(例えば白がマゼンタぽくなる)firefox,gimp上やdisplay -window root では正常に見えます。
こちらの書き方が正しくないのでしょうか?それともgdk-pixbufの15bitでの処理が正しくないのでしょうか16,24bitでは正常に見えます。
(xorg-server-1.7.1,gtk+-2.21.0)

#include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>

int main(int argc,char *argv[]){
Display *dpy;
int scr;
Window root;
int depth;
GC gc;
GdkPixbuf *pixbuf;
gint imgw,imgh;

dpy = XOpenDisplay(NULL);
scr = DefaultScreen(dpy);
depth = DefaultDepth(dpy,scr);
root = RootWindow(dpy,scr);
gc = DefaultGC(dpy,scr);

g_type_init();
gdk_pixbuf_xlib_init_with_depth(dpy,scr,depth);
pixbuf=gdk_pixbuf_new_from_file(argv[1],NULL);
imgw=gdk_pixbuf_get_width(pixbuf);
imgh=gdk_pixbuf_get_height(pixbuf);
gdk_pixbuf_xlib_render_to_drawable(pixbuf,root,gc,0,0,0,0,imgw,imgh,XLIB_RGB_DITHER_MAX,0,0);
gdk_pixbuf_unref(pixbuf);
return 0;}

451:login:Penguin
10/06/29 08:21:44 7ZTRAVs/
この板の奴には分からんだろ

452:login:Penguin
10/06/29 12:06:30 SCBkgPqa
gdk-pixbufの新しいバージョンとソースくらは確認できるだろ?

453:login:Penguin
10/06/29 13:07:25 7ZTRAVs/
くちごたえだけいっちょまえ

454:login:Penguin
10/07/01 20:38:54 ff1chlOv
またgdk-pixbuf分離したのかめんどくせえな

455:login:Penguin
10/07/08 13:05:20 kV57IwAm
あらっ?PPMの色反転してね?

456:login:Penguin
10/07/08 21:04:54 kV57IwAm
ああ勘違いだった、反転フィルタ効いてた

457:login:Penguin
10/07/21 21:06:32 eYcae5GB
ValaでGTK+ vs C++でQt
の構図に持って行きたい。


458:login:Penguin
10/07/22 01:58:11 PbDDQq9y
valaつかうぐらいなら、gtk#つかうだろ


459:login:Penguin
10/07/22 10:25:07 B8+a86z/
いやいや、Valaは良い言語だよ。
実行時に余計なライブラリとか要らないし。


460:login:Penguin
10/07/22 18:59:19 P6pQJgjf
gtkbuilder対応もうれしいですね。 > vala

461:login:Penguin
10/08/09 22:35:54 FqMSbruc
クリックする度に画像を切り替えようとして以下のようにしたところ、
2枚目の画像は表示されませんでした。
2枚目の画像を表示するには他にどのような処理が必要でしょうか?

#!/usr/bin/ruby
require 'gtk2'

window = Gtk::Window.new
window.signal_connect("destroy") {Gtk.main_quit}

image = []
image[0] = Gtk::Image.new("test.s/sample7.jpg")
image[1] = Gtk::Image.new("test.s/sample8.jpg")
i=0

event_box = Gtk::EventBox.new
event_box.add(image[0])
event_box.events = Gdk::Event::BUTTON_PRESS_MASK
event_box.signal_connect("button_press_event") {
event_box.remove(image[i])
i += 1
i %= 2
event_box.add(image[i])
}

window.add(event_box)
event_box.realize
event_box.window.cursor = Gdk::Cursor.new(Gdk::Cursor::HAND1)

window.show_all
Gtk.main

462:login:Penguin
10/08/10 19:44:28 fAaz4maQ
>>461

event_box.add(image[i])
event_box.show_all
とか

463:login:Penguin
10/08/23 22:46:19 UjVUUhyV
gtkでサブディスプレイにウィンドウを表示するのはどうやればいいんでしょう?
メインがlocalhost:0.0でサブがlocalhost:0.1になってます。

464:login:Penguin
10/08/24 05:56:03 +4na7v6g
それはX用語(GTK+でも)でスクリーンというので
GtkWindowのscreenプロパティに表示したいgdkScreenを入れるんじゃないかな?

465:login:Penguin
10/09/06 00:37:50 DZ6K0yAz
GTK#なのですが、.NETのWinFormsでいう、
SuspendLayout()

ResumeLayout()
はどうすればいいでしょうか?

466:login:Penguin
10/09/29 06:17:42 Xcx5gfP/
質問です。
GtkBuilderで定義したウィンドウを複数表示するにはどうすればいいでしょうか?
一つだけだったら、gtk_builder_get_objectで取得して簡単に表示出来ます。

467:login:Penguin
10/09/29 07:30:54 gR2Kn98z
>>466
GtkBuilder を複数生成すればいいんじゃないの?
自分がよくやるのは、GtkBuilder を複数生成して gtk_builder_add_from_string で定義を取り込み


468:login:Penguin
10/09/29 08:32:23 mEXXgo8J
Gtkビルダー?マイクソソフトのC++ビルダーみたいな感じか?
と思って検索しようと思ったが堪えた

469:login:Penguin
10/09/29 18:41:46 jeMZvjSG
GTK+のRAD開発ツールってgladeじゃん

470:466
10/09/30 03:18:19 oEA2zNJX
>>467
ありがとう。その方法でやってみる。

>>468
GtkBuilderは、以前のlibgladeにあたるもの。
それに、C++BuilderはMSじゃないぞ。

>>469
もちろん、Glade使ってXMLを作成してるよ。
それを読み込むのがGtkBuilder。


471:login:Penguin
10/10/03 23:46:11 y5C9HzxD
cairoを使って書かれたゲームとかありますかね?
簡単なものでいいのですが

472:login:Penguin
10/10/04 11:18:38 9wJE7nSN
>>471
URLリンク(uproda.2ch-library.com)
ダウンロードするとlib299097.cというファイルが出来るからこれをgccでコンパイルすればいい
コンパイルはディレクトリを移動してから
gcc lib299097.c -o cairo_game `pkg-config --cflags --libs gtk+-2.0`
と入れれば通るだろう
./cairo_game
でゲーム開始だ

473:login:Penguin
10/10/07 23:33:21 bzqpJyzy
gtkmm使ってもなんか書きにくい
Python使ったら楽かな

474:login:Penguin
10/10/07 23:58:28 wQWwIsB3
>>473
余程のものじゃない限り、性能的に問題とはならないと思うから、スクリプトは便利だよ。
まぁ、俺は ruby なんだけど。。。


475:login:Penguin
10/10/08 13:40:09 BvF1QbPR
PythonならC++並みに開発環境整備されているし、Ubuntuのアプリも多くが
Python + gtk で開発されているよ。

476:login:Penguin
10/10/08 13:41:57 yKf5ENPb
>>474
( ゚∀゚)人(゚∀゚ )ナカーマ

477:login:Penguin
10/10/08 22:26:59 ncsyc+ZE
PerlとPythonなら どっちがいいですか?

478:login:Penguin
10/10/08 22:51:53 lqYDv+Jp
gtkの開発するなら圧倒的にpython、としか言えんだろこのスレじゃ

479:login:Penguin
10/10/08 22:53:13 vwfmsqfo
CだろJK

480:login:Penguin
10/10/08 23:25:32 RoG/rFqo
「PerlとPythonならどっちがいいですか?」
「CだろJK」

ぱねぇっす! やっぱハッカーのひとはぱねぇっす!!

481:474
10/10/08 23:53:29 YC1HKIpZ
ruby 以外のバインディングの事を知らずに書くけど、今時はどの言語でも GtkBuilder を使えるだろうし、
どの言語がいいか何て、自分にどの言語が合ってるか次第なんじゃないの?


482:login:Penguin
10/10/09 00:01:38 BvF1QbPR
>>481
C/C++ 以外では、
gtkが公式にサポートしているのがPython
Gnomeの公式アプリに使われているのがPython
UbuntuやFedoraでデフォルトでインストールされているのがPython
Anjuta等GTK系開発ツールのサポートが一番充実しているのがPython

483:474
10/10/09 00:20:06 HCJJF52G
>>482
おぉ、Python は gtk で公式にサポートされてるんだ。
それは、いいねぇ。
ruby も入れてくれんかな。


484:login:Penguin
10/10/09 04:01:15 mDHE/CAa
何でみんなPythonが好きなんだ?
忠誠を誓ってるGoogle様が使ってるから、好きなふりをしてるだけか?

そうはいっても本当はPerlが大好きなんだろ?

485:login:Penguin
10/10/09 06:24:12 Xt3OjFd+
日本のRuby右翼と同じだと思われたくないから

486:login:Penguin
10/10/09 13:25:25 JGqpR3KW
Perlは3日たったら自分の書いたコードでも解読に苦労することがある。
Pythonは30分チュートリアルを読むだけで他人の書いたコードでもスラスラ読めることが多い。

487:login:Penguin
10/10/09 13:39:33 3AdxyjT6
それでもボクはCがいい

488:login:Penguin
10/10/09 13:59:17 pWZySSkO
            /
        ,'          i                       |
        |   !   |    |     i      |   |     i       |
        |   |   |    |     |       |   |   」_    . :|
        |   |   | : : : :|: :    │ i  . :|  . :|  「 { l:. . : . : . :|
        │  │  : :|: : i _ノ: :  : : ヽ、: :|: : : : |: : : : :/ }| | |: : : : : : :|
        〈::|   │: : 斗‐ 「 │: : : : :.:.| 「:.T ー-|- : : :| l|. l lヘ: : : : : :|    まあ、いやらしい。
          \:::L_」─‐-ンt云、└─- -┘ ィ乏ァ-.、─-:l  l. | ', ヽ: : : : |
         r.、:、:::∧ l∧イ;::::}`         ´{;イ:;::::::}ヾ| }  l  l  } 〉: : : :|
         | |:::::::::ヘ 弋;r:ユ           辷_;:r:.ソ l/  |  |  |,/: : : : :|
         | {、:::::::: ', ´               ̄ /      /│:. : : :|
         ヽ ヾ::::::::::!  " "          " "/          ノ:.: : : : l
          |ヘ ヽ::::::}、     、         /        /: : : : : : : ',
          |: :ヽ \::::`:.、     ヽ_フ   /        /: : : : : : : : : : ヽ
          |: :.:ィ\ \:::::::丶、       {       /|_,.-‐'" ̄ \: ヽ
         / |: : :ヽ  `ー==:≧ 、_   イ|      / /:::::::/       ヽ:.}
        /    l: : : :|       人:::::::::::|      l:.:/:::::::/         ヽ
         |    ヽ: : l        /、  ̄ ̄|      l/:::::::/          |
         |     ∨      /::::::: ̄ ̄ |      |::::::/            |
         |      /      /::::::::::::::::::::::|      l::::::{            |


489:login:Penguin
10/10/10 18:30:46 Sp+agnVp
そのAAを壁紙にしたい

490:login:Penguin
10/10/11 18:54:49 VGide9Wk
pythonって,vbaみたいな位置付けだな

491:login:Penguin
10/10/19 16:15:51 EWnEpHL/
GTK+を使ってプログラムを作ると、MacOSXでボロボロな結果になるから使わないほうがいい。

492:login:Penguin
10/10/19 17:17:34 2NWEe5/4
位置づけとは微妙
pythonは、VBAほど腐ってはいないぞ

ところでVBAの近代化って進んでいるのか?
Access VBA甘グラマ供の再利用は由々しき問題ぜよ

493:login:Penguin
10/10/19 19:29:33 mjCBYhC0
VBAも.netが使えるっぽいから、近代化進んだんじゃないの?

494:login:Penguin
10/10/19 19:47:43 /Nj/keXZ
>>491
どう考えてもGTKが悪いのではなく糞マックが悪いと思うんだが。

495:login:Penguin
10/10/19 19:49:07 Ux5sdFhe
どっちが悪いという話はしていないと思う。

496:login:Penguin
10/10/19 20:39:28 2NWEe5/4
>>493
そうなの?
URLリンク(www.microsoft.com)
なんて2003年でとまってんだけど、更新が。

497:login:Penguin
10/10/19 21:38:06 mjCBYhC0
>>496
[HOWTO] Microsoft Office で Visual Basic for Applications から Visual Basic .NET クラス ライブラリを呼び出す方法
URLリンク(support.microsoft.com)

こういう事が出来るらしい。
けど一般的じゃないっぽいね。
まぁ互換性失われるし一般的にはならないように感じられるな…

498:login:Penguin
10/10/20 16:42:06 dibJXxnt
>>494
GTK+がマルチプラットフォームになるように吸収するんだろ?
だったら、Macは悪くない。

かと云って、「GTK+が悪い」と云うのはおこがましい。
文句云っていいのは、それ相当のものを作れる人だけだ。

499:login:Penguin
10/10/20 16:59:50 nkUeeiMO
>>498
「同じようなモノをつくれるひとでなければ批評してはいけない」というのなら

・linuxの○○の部分が悪いといっていいのはOS開発者だけ
・ゲームの○○が面白くないといっていいのはゲーム開発者だけ
・携帯電話の○○が使いづらいといっていいのは端末開発者だけ
・新作映画のストーリーラインを批判していいのは映画監督だけ

そういうのって言論封殺っていわない? オープンソース風土とはだいぶ違う文化じゃない?

500:login:Penguin
10/10/20 17:17:25 xVoAed/u
WindowsでもLnFはぼろぼろだよね。

501:login:Penguin
10/10/20 21:35:34 9tE6IJS+
osxのgtk+ってx window版とネイティブ版とあるんじゃなかったっけ?

502:login:Penguin
10/10/22 10:57:35 i0oNjkXQ
Windows7でも見た目が最悪になるからな。
MacOSXみたいに日本語入力ができないとか絶望的ってほどではないが。

503:login:Penguin
10/10/22 11:53:18 r2m3k6+H
Pythonバインドでも同じ問題って起こるの?

今日からPython勉強してGUIなアプリを作ってみようと思っていたのだが・・。
Qtのほうがいいのかな。でも、GNOME使ってるしGtkがいいんだよな

504:login:Penguin
10/10/22 22:39:01 T3dIa7zi
そんなあなたにPythonでもC++でもPerlでもokの

wxGlade
URLリンク(wxglade.sourceforge.net)

はどうかな?

505:login:Penguin
10/10/24 07:46:05 Vhl0qsDm
残念だが、日本語云々の話はWindows1.0のレベルにも達していないというのが現実。
開発体制の問題だろうね。

506:login:Penguin
10/10/24 22:57:17 uho4GCjV
酷いと思うけどさすがに1.0はないだろ
それに日本語(2バイト文字)関連はGtkよりQtのが酷いしマシな方

507:login:Penguin
10/10/26 18:03:28 XGIO2f11
GtkTreeView内のテキスト(gtk_cell_renderer_text_newで設定したもの)がカラムの幅を超えたら自動的に折り返して次の行に表示するようにできませんかね?
現状はカラムの幅を超えた部分は消えてしまいます。自分で改行を入れた場合は次の行に表示されるので折り返しも出来そうな気はするのですが。

508:login:Penguin
10/10/26 18:05:34 O6NRu0pw
URLリンク(library.gnome.org)

509:login:Penguin
10/10/26 18:32:48 XGIO2f11
>>508
ありがとうございます!

510:login:Penguin
10/11/02 19:29:02 0mcR1TdE
TreeView内にGtkCellRendererTextでテキストを表示する場合に、一部の文字だけ色を変えたり太字にしたりすることは可能でしょうか?
あるいはTreeViewにGtkEditableを格納するようなことができればそれでもよいのですが。

511:login:Penguin
10/11/02 19:41:27 RVdg5wgR
>>510
pango markupで対応するんじゃね?

512:login:Penguin
10/11/04 13:45:22 xBpDemuD
>>511
g_object_set (renderer, "markup","ab<b>cd</b>e", NULL);
とかでできました。ありがとう!

513:login:Penguin
10/11/07 14:39:48 qFCSAFkG
GtkTextIterのリファレンス読んでて、iterって単語がいっぱい出てくるけど
これって、日本語に訳すとどういう単語が適切なのかな?
iteratorで「反復子、繰り返しの概念」って出てきて、いまいち意味がつかめず
iterって出てくると、まったくもって意味がわからん。
ググっても、熱核融合炉とか出てくるし…

514:login:Penguin
10/11/07 14:43:10 Um+oFuZb
イテレータはイテレータだよ
ループの抽象化

515:login:Penguin
10/11/07 14:57:51 qFCSAFkG
>>514
iteratorとiterは、まったく同じと考えりゃいいということ?

516:login:Penguin
10/11/08 06:15:04 Wxghvts2
>>515
正確な話は分からないけど、Gtkで出てくる?Iterの類は"位置を指す物"と理解してる。
GtkTextIterでいうと、GtkTextBuffer中のどこかの位置を指す。
イテレータだと、意味するものが広くてピンとこない感じがする。
かといって、訳す場合に他にいい単語があるかは分からない。


517:login:Penguin
10/11/08 06:20:30 Wxghvts2
ごめん、文字化けした
"?Iter"は"なんとかIter"ってことね


518:login:Penguin
10/11/08 20:12:16 M/miEbwJ
>>516
ものすごく参考にさせていただく。ありがとう。

519:login:Penguin
10/11/09 00:55:32 Tw+0pcNe
C++のイテレータはポインタと同じ動作をするものと考えられている。
ポインタのようなものっていう概念が一番しっくり来る。

520:login:Penguin
10/11/13 16:17:20 Pqzt35wF
>>519
ものすごく返答が遅くなったけど、感謝します。

521:login:Penguin
10/11/22 02:59:05 PS3m5Gby
GTK+のリファレンスを見てると、ところどころに
"… is deprecated and should not be used in newly-written code."
ってのが、出てきます。
「推奨しないし、使うなよ」って意味だけど、どうすればいいの?
公開する予定の無いプログラムだから、無視して使ってるけど。

522:login:Penguin
10/11/22 03:05:51 9McU1lSw
他のやり方があるはず

523:login:Penguin
10/11/24 15:54:13 euuHJfN4
GtkTreeViewでアクティブなRowをハイライトして色を反転させる
機能を無効にすることはできますでしょうか?
自分の環境ですとアクティブなRowは青い背景に白い文字でハイライト
されてしまいます。
RowのSelected状態は変えることができるのですが、そちらはRowが
Select時に灰色っぽくなるだけで問題ないのです。ハイライトの機能
の方を無効したいです。


524:login:Penguin
10/11/29 21:54:46 sMx9z6BS
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
と、ボタンにアイコンを付けようとしても、アイコンが出てきません。
上の場合、「キャンセル(_C)」というラベルだけ出ます。
メニューバーにアイコンを付けようとしても、アイコンが出ません。
何か欠けてるんでしょうか?

525:login:Penguin
10/11/29 22:14:12 lGrvc++f
gtk_button_set_image()の説明に"gtk-button-images"の設定によると書いてあるから調べてみて

526:login:Penguin
10/11/29 22:34:36 sMx9z6BS
>>525
ありがとう。今から調べます。

527:login:Penguin
10/11/29 22:58:14 sMx9z6BS
他に同じく悩む人がいるとは思えませんが、解決したのでご報告。
525さんにヒントいただいて、devhelp読んで、ググったら下のとこが出た。
URLリンク(ubuntuforums.org)
ここの逆をやって、アイコンが出ました。ありがとう。

528:login:Penguin
10/11/29 23:22:35 OgcvDSer
>>527
つーか、俺もこれずっと悩んでた。
原因が分かってスッとしたよ。ありがとう!

529:login:Penguin
10/11/30 12:55:40 M+63bYwL
>>527
ありがとう!!

530:login:Penguin
10/11/30 16:19:03 TQa7Ptpz
>>527
なんかよくわかんないけど、オレからもありがとう!

531:login:Penguin
10/11/30 21:51:44 o02+ms48
>>527
なんのことかわからんけど、俺からもありがとう!

532:login:Penguin
10/12/01 23:14:33 xPo+2HeT
MinGWでWindowsむけにGTK+アプリをクロスコンパイルしている人はいるのだろうか。
Windows上で環境構築せずにすむから楽そうなんだけれど。


533:login:Penguin
10/12/02 00:56:21 zqStIY3v
>>532
最近のFedoraはmingw関連のパッケージがたくさん追加されているから
Windows向けのクロスコンパイルは簡単だよ。

534:login:Penguin
10/12/02 08:40:09 TtpWl3rj
Fedoraかぁ…。
調べてがんばってみる。

535:login:Penguin
10/12/03 13:50:17 G8uZw67f
TreeViewでCellRendererTextで描画してるカラムについてなんですけど、CellRendererTextにwrap-widthを設定した場合、そのカラムをwrap-width以下にリサイズすることができなくなってしまいます。何か回避方法はありますか?

欲を言えばwarp-widthがカラムの幅に対して自動的に変わるようにしたいです。

536:login:Penguin
10/12/03 14:43:06 nwQzeTfG
なんかいまいちな気がするけど
URLリンク(www.islascruz.org)

537:login:Penguin
10/12/03 16:46:38 G8uZw67f
>>536
おお、pythonだけどCでも全然いけそうな対処ですね。
ありがとうございます!

538:login:Penguin
10/12/13 14:42:35 GOtpVrpZ
GtkTreeViewで質問です。
gtk_tree_view_set_grid_linesで水平のグリッドラインを表示した状態でcell-background-gdkを使ってセルの背景色を設定しているのですが、色をつけたセルだけグリッドラインが消えてしまいます。何か解決方法ってありますか?

539:login:Penguin
11/01/09 09:14:57 urRBMp8d
GTKを利用したプログラミングの勉強をしているのですが、不明な点があり質問させていただきます。

GTKにて作成したウインドウを常に最前面に表示しておきたいのですが、
それを実現するにはどのようにすればよいでしょうか?

ビュアーのようなものを作っているのですが、他の作業をしながらも確認したいため
他のウインドウより手前に表示しておくことが出来ればと考えております。

540:login:Penguin
11/01/09 09:42:27 geIJW/Gp
>>539
>GTKにて作成したウインドウを常に最前面に表示しておきたいのですが、

WM(ウィンドーマネージャ)側の設定で、できるんじゃないのかな。

541:login:Penguin
11/01/09 12:54:14 98wyOWKO
gtk_window_set_keep_aboveというのがあるが、うまくいくかはWMに依存する

542:login:Penguin
11/01/09 13:28:00 urRBMp8d
>>541
ありがとうございます。
うまく動きました。

543:login:Penguin
11/01/10 15:25:42 pdeWcU/o
おっさんにもわかるPYTHONの
”ウィンドウを表示するために--クラスを作成する” で

>> self.wTree.add_from_file(os.path.dirname(os.path.abspath(__file__))+"/"+self.gladefile)
のところで
glib.GError: root 要素が間違っています: 'glade-interface'

となり止まってしまいます。どなたか解決方法がわかる方お願いします

544:login:Penguin
11/01/10 16:41:54 lxMobblK
しらんが
os.path.join(os.path.dirname(__file__), self.gladefile)
とかな

545:543
11/01/10 17:33:42 pdeWcU/o
最初から作り直してわかったんですがgladeのほうの設定がおかしくなってたみたいでした
ご迷惑おかけしました



546:login:Penguin
11/01/11 21:47:15 vH5X5SgR
Gtkのアプリケーションを勉強しているのですがわからないことがあります。

TreeViewを利用して、計算結果が順次追加されていくアプリケーションを制作しているのですが、
計算結果が追加されていくに連れて結果を見るにはスクロールが必用になっております。
自動でスクロールを一番下に持って行くにはどのようにすればいいのでしょうか?

理想としては、スクロールが一番下にされていれば、リストが追加されるたびに常に一番下に
スクロールされ、スクロールが途中になっていれば項目が増えてもスクロールは維持。
というふうにしたいです。
ScrolledWindowのset_vadjustmentを利用すればいいことはわかったのですが、
うまく動かすことができません。


547:login:Penguin
11/01/11 23:29:55 5lRRaNMx
多分ちゃんとしたやり方ではないけれども URLリンク(ideone.com)

548:login:Penguin
11/01/12 00:28:52 vB7prOwP
便乗質問

gtk.TreeViewColumnで幅を指定しているときにその幅を超える文字列は折り返したいんだけど、オプションが見当たらない。
オプションってないの?

549:login:Penguin
11/01/12 00:47:08 5/uHApeb
gtk.CellRendererTextのwrap-width

550:548
11/01/12 18:24:47 vB7prOwP
>>549
ありがとう
CellRenderTextのほうで折り返しが設定出来たのか。
考えてみると、確かに折り返すのはTextだね。

関連でもうひとつ質問させてください
TreeViewColumnをset_resizable( True)にしているんだけど、カラムがリサイズされたときはどこのシグナルがでる?
自分なりに捜してみたのだけど、みつからない、。

551:login:Penguin
11/01/12 19:26:21 B0eGTMcl
GTKなんて時代遅れ

552:login:Penguin
11/01/12 21:39:01 DAHnc8sL
時代はQ'tだってか?www

553:548
11/01/12 21:41:05 vB7prOwP
上に同じ質問がありましたね。
検索に出て気づきました。

すみません。ありがとうございました。

554:login:Penguin
11/01/13 18:44:21 XeFPXStO
ねらのみなさんに質問させていただきます。

正確にはGTK#なんですがGTK+でもいいです。
ウィンドウを常に最背面に表示する方法はありますか?
検索するとこんなのが見つかったのですが、
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <X11/Xatom.h>
#define WIN_LAYER_DESKTOP 0
#define WIN_HINTS_SKIP_WINLIST (1<<1)
#define WIN_HINTS_SKIP_TASKBAR (1<<2)

#define XA_WIN_LAYER "_WIN_LAYER"
#define XA_WIN_HINTS "_WIN_HINTS"
ーーーーーーーーーーーーーーーーー

/* windowを一番下に置く */
data[0] = WIN_LAYER_DESKTOP;
gdk_property_change(GTK_WIDGET(window)->window,
gdk_atom_intern(XA_WIN_LAYER, False),
(GdkAtom) XA_CARDINAL, 32, PropModeReplace,
(unsigned char *) data, 1);

/* taskbarやwinlistにこのwindowを表示させないようにする */
data[0] = WIN_HINTS_SKIP_WINLIST | WIN_HINTS_SKIP_TASKBAR;
gdk_property_change(GTK_WIDGET(window)->window,
gdk_atom_intern(XA_WIN_HINTS, False),
(GdkAtom) XA_CARDINAL, 32, PropModeReplace,
(unsigned char *) data, 1); 

XA_CARDINALってなんでしょう?? 上記ソース by URLリンク(www.host.or.jp)

555:login:Penguin
11/01/13 20:04:15 yufk+Tn2
そのURLは叩きたくない

本家にいきましょう
GTK#本家
URLリンク(www.mono-project.com)

関連スレ
[Not Gtk+] Gtk#質問スレッド [mono]
スレリンク(linux板)

556:login:Penguin
11/01/13 20:14:13 Q+1lsYEj
>>554
荒らしてんじゃねーよカス

557:login:Penguin
11/01/13 20:18:51 XeFPXStO
>>556
煽り厨キター

558:login:Penguin
11/01/13 20:20:21 XeFPXStO
連投すいません。
本家のフォーラムで聞いてみようと思います。

559:login:Penguin
11/01/14 03:23:12 KnKuBbAY
初心的な質問でスミマセンが

pythonでglade3でつくったLabelの内容を変更するには
どう直したらよいか教えていただけますか?
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import os.path
import gtk
import gtk.glade
class counterGTK:
def __init__(self):
self.gladefile = 'var0.1.glade'
self.wTree = gtk.Builder()
self.wTree.add_from_file(略)
# count number
self.number1 = 0
dic = {
"on_clicked1" : self.on_clicked1 ,
"on_clicked2" : self.on_clicked2 ,
"on_window1_destroy" : self.on_window1_destroy }
self.wTree.connect_signals(dic)
self.mainWindow = self.wTree.get_object("window1")
self.mainWindow.show_all()
def on_window1_destroy(self, widget):
gtk.main_quit()
def on_clicked1(self, widget, event=None):
self.number1 += 1
# !!!ここが変と表示が出ます。
self.mainWindow.set_text(str(self.number1))
if __name__ == "__main__":


560:login:Penguin
11/01/14 09:50:28 QJfXyK10
プログラム
URLリンク(hibari.2ch.net)

561:login:Penguin
11/01/15 22:11:43 KQmBhVmm
>>559
set_titleじゃ駄目?

562:login:Penguin
11/01/17 01:04:20 VJob0is5
ブラウザやエディタの上で、
マウスカーソルの下にあるテキストを取得する単純な
方法ってあるんでしょうか?ダブルクリックすると反転する単語
を取り込みたいのですが。出来ればトリプルクリックで反転する
一行も一緒に取り込みたいです。




563:login:Penguin
11/01/17 01:09:27 VJob0is5
すいません、アプリケーションによって
トリプルクリックでの反転の仕様は違うようですが、

マウス位置が所属するパラグラフ、単語、行を同時にとりこみたいのです。
言い忘れましたが想定する言語は英語などアルファベットのものです。

564:login:Penguin
11/01/19 01:15:17 AHjWAb2g
GTK+3.0のリリースが楽しみだなぁ
Windows版とかMac版の出来が気になる

565:login:Penguin
11/01/21 13:29:12 oTTqy+gy
>>561
遅れてすみません
self.mainWindow.set_title(str(self.number1))
に直すとウィンドウのタイトル欄の方に表示
おかげで一歩前進できたありがとうございました

566:login:Penguin
11/01/25 22:03:31 93ZVq4E+
家計簿のようなものを作りながらPyGTKの勉強をしております。
TreeViewを使ってリストを作成しているのですが、

ID 値段 名前 メモ
1 100 コーラ 自販機
2 200 カルピス 自販機

のようなリストがあるとして、リスト中を右クリックすると編集メニューを出すようにしたいのですが、
右クリックした際にメニューを出す方法や、右クリックした列の値の取得方法がわからず悩んでおります。

どのようなコードで実現できるでしょうか?

567:login:Penguin
11/01/25 22:15:19 3NJ+mNNa
>>566
自分で調べる気はないのかね?
URLリンク(lmgtfy.com)

568:login:Penguin
11/01/25 23:38:42 93ZVq4E+
>>567
いろいろなワードで調べてみたのですが、見つけることができませんでした。
>>567の検索候補も見てみたのですが、TreeViewで右クリックした時の処理はあるのですが、
右クリックした行の値を取得する方法はありませんでした。

569:login:Penguin
11/01/25 23:55:07 p4XnSN29
>>568
テストしてないけど、gtk.TreeView.get_selection()で取れない?

570:login:Penguin
11/01/26 06:42:35 n1B9dBtN
VBoxにLabelやEntryをいくつか配置すると高さが全て均等になりますが、高さを設定するにはどうすればいいですか?

571:login:Penguin
11/01/26 08:43:37 LEML9YPE
ぴーな?

572:login:Penguin
11/01/26 09:51:05 z74Fwadf
GTK+を使ってシリアルポートで自作ハードウェアと通信することは出来ますか?

573:login:Penguin
11/01/26 11:33:09 h7bjSSMJ
>>572
自作ハードウェアが動くか知りませんが、「gtk シリアルポート」でググると
アホみたいに検索結果が出てきますが。
URLリンク(www.linuxquestions.org)
URLリンク(sourceforge.net)

574:570
11/01/27 04:23:46 HXLIqy/B
HBOXでは高さの指定ができないのですかね

575:login:Penguin
11/01/28 11:05:05 Gptdpqjn
すいません、教えてください。
ubuntuにて、pixmapにgdk_draw_stringで日本語を表示させたいのですが、文字化け
し、下記のメッセージが出ます。
does not support all the required character sets for the current locale "ja_JP.utf8"
どのようにしたら正常に表示できるようになるでしょうか。


576:login:Penguin
11/01/29 01:44:56 6hO1Bdmk
ロケールやフォントを変更したらどうだろうか?

577:login:Penguin
11/01/29 02:07:22 l0OT+bD3
gdk_draw_ナントカはdeprecated
cairo使ってね

578:login:Penguin
11/02/01 23:01:59 4jG8Kz/p
TreeViewの文字列にURLがあればハイパーリンクにしたいと思っているのですが、TreeViewの文字列を
ハイパーリンクにするにはどのようにすればいいのでしょうか?



579:login:Penguin
11/02/02 20:38:30 KRwtVrWu
>>578
g_spawn_command_line_sync()でgvfs-openコマンド呼べばいいんじゃね?
ダメならエラーが返るだろうし。
URLかどうか判断するなら、GRegex使うのが良いのかな?

580:login:Penguin
11/02/12 01:27:29 Tq5jzXI4
3.0 releaseしてたんだな

581:login:Penguin
11/02/13 02:06:32 Y2lUgTlR
結局、OpenGLは統合されなかったか…


582:login:Penguin
11/02/13 16:56:29 q0+Fj2Ij
以下のように画像を表示するだけのプログラムを作成しました。
この画像を表示したまま、プログラムを終了したいのですが、
そのようなことは可能でしょうか。
(他のプログラムに上書きされるまで、プログラム終了後も画像を表示しつづける。)

/* 画像表示領域の生成 */
drawing_area = gtk_drawing_area_new();
gtk_widget_set_size_request( drawing_area,
gdk_pixbuf_get_width( pixbuf ),
gdk_pixbuf_get_height( pixbuf ) );

gtk_container_add( GTK_CONTAINER( window ), drawing_area );

g_signal_connect( G_OBJECT( window ), "delete_event",
G_CALLBACK( close_window ), pixbuf );

g_signal_connect( G_OBJECT( drawing_area ), "expose_event",
G_CALLBACK( expose_event ), pixbuf );

gtk_widget_show_all( window );
gtk_main();


583:login:Penguin
11/02/13 17:17:13 CYJdXAks
ウィンドウの×ボタンを押したら隠れるのはすぐできるけど、何がしたいのかよくわからないので教えて

584:login:Penguin
11/02/13 17:45:42 q0+Fj2Ij
>>583
説明が少なくてすいません。

X86 Linux PCを使って業務用のシステムを作っています。

PCを起動して、OSが立ち上がったあと、自動で以下の処理を行います。
1)USBメモリが接続されているチェックします。
2)もしUSBメモリがマウントできたらファイル(数百Mバイト)をHDDにコピーします。
3)ファイルコピー完了後に、メインの処理を行います。

2)のファイルコピーに時間がかかるため、その間に「しばらくお待ちください」という静止画を
フルスクリーンで表示したいんです。1)~3)の処理はシェルスクリプトで行い、

#!/bin/bash
(省略)
  |
静止画を表示
cp aaa.bin /temp // ファイルコピー
静止画を消す
  |
メインの処理

という感じでやりたいと考えています。

シェルスクリプトでやるのが最適かどうかわからないのですが・・・。

585:login:Penguin
11/02/13 17:56:06 XiVInOjw
で、教えたらお前の給料の何割くれるんだ?

586:login:Penguin
11/02/13 18:14:42 ibuao8Zp
プログラム起動→メッセージ表示→シェル実行→シェルの終了待ち→戻り値確認→終了処理
ではダメなん?

587:login:Penguin
11/02/13 18:30:28 YWgLFWCD
>>584
商売でオプソ使うのは止めたほうがいいよ
嫌味で言ってるんじゃなくて、法務的な問題が多すぎてメリット無いって
ソースコード開示しろって言われたとき、開示できる仕様なの?
客先とトラブルになっちゃうよ?
止めた方がいいと思うけど

588:583
11/02/13 20:56:45 L9k+0hAb
>>584
内容了解。俺だったらこんな感じに実装するけどこでどうかな?
どうしても一回プロセス自体終了する必要があるのであれば
もう少し手を入れないといけないと思う。

スクリプト内のhelloworld.pyは以下のもの
URLリンク(www.pygtk.org)

#!/bin/bash
${PWD}/helloworld.py &
GTKPID=$!
sleep 10
kill ${GTKPID}
exit


589:login:Penguin
11/02/13 23:32:30 q0+Fj2Ij
>>588
ありがとうございます。
なるほど、そのようなやり方があるのですね。

非同期のプロセスで画像を表示し、
ファイルコピーが完了したら
プロセスをkillするということで理解しました。

私の思っていることが出来そうです。
たいへん勉強になりました。

>>587
同僚の仕事を楽にするために、手伝っています。
今回の件のソースは公開しても全然問題ないのですが、
今後は気をつけようと思います。

以上、ありがとうございました。

590:login:Penguin
11/02/15 00:33:40 yHAzvg6R
URLリンク(sourceforge.jp)
2年ぶりのメジャーリリース、「GTK+ 3.0」が登場
2年ぶりって…
訳も適当だし、なんか寂しいリリースだな

591:login:Penguin
11/02/19 17:26:47 7Kan848G
PyGTKを使っているのですが、TreeViewのデータを更新したいのですがどのようにすればわからず苦しんでおります。

行いたいことは、
TreeViewに(ID,TEXT)というカラムありデータが羅列しています。
そのIDを指定してTEXTの内容を変更したいのですが、どのようにすればいいでしょうか?

どうかご教授頂ければと思います。

592:login:Penguin
11/02/20 22:47:31.70 9P4zTjVT
>>591
簡単に言うと、TreeStoreのIterを対象のところ(ID)まで移動して、
tree_store_set()を行う。
URLリンク(library.gnome.org)

593:login:Penguin
11/02/20 22:55:37.60 i278BMok
(´・ω・`)ご教示だろ

594:login:Penguin
11/02/20 22:59:25.78 AtCPi59r
女教授だって

595:login:Penguin
11/02/28 09:54:32.03 TADfIJ7a
スレリンク(unix板)

596:login:Penguin
11/03/06 02:46:29.22 fhS84NZT
スレ違いであれば申し訳ないございません。

LinuxでGTK+を使ってアプリを作成しています。

Windowsで言うグローバルホットキーを実装したくて色々調べたのですが該当するページが見つからず途方にくれています。

GTK+にはRegisterHotKey()に当たる関数はないのでしょうか?
また、Linuxでグローバルホットを実装する方法があればご提示お願い致します。

597:login:Penguin
11/03/06 04:33:17.56 tsVY1dm+
>>596
gtk hotkey でググったら、一発ですが探してないの?

598:596
11/03/07 03:13:28.76 PnCjIDjh
>>597
すいません、ググり方が少し違ったようで・・・
「Linux プログラミング ホットキー」などで探していました。
ご指摘頂いたワードで検索した結果なんとか行けそうです。
本当にありがとうございました。


599:login:Penguin
11/03/08 11:03:24.04 d1JzSVeD
検索って難しいよね。目的の情報に準じた予備知識があって
適切なキーワードを選択できてはじめて探し当てられる。


600:login:Penguin
11/03/08 12:59:49.88 a0IyugMv
>目的の情報に準じた予備知識があって

あるある。だいぶ知恵ついてくると簡単に検索できるようになるけど、初めての分野だと一向にヒットしない

よく初心者スレで「検索しても見つかりませんでした」「○○で検索すればすぐみつかるだろksg」
みたいなやりとり見るけど、正直初心者にはムリだよな…と思ったりもする。放置するけど

今度またググル先生がアルゴリズム変えるらしいけど、こういった点では改善がみられるかなあ…

601:login:Penguin
11/03/08 19:26:19.05 tKbotCXi
3.0.0になってLnFはなんか変わった?
右側に0ナンバーが多いものはなんか怖いから、まだ試してない。

602:login:Penguin
11/03/13 21:58:33.68 Vqq2M10I
valaつかっているひといますか?


603:login:Penguin
11/03/13 23:48:32.57 u6WvClB5
>>602
スレリンク(linux板)

604:login:Penguin
11/03/17 17:02:45.22 +oBUwr3N
質問です。pygtkを使っています。
gtk.TextViewの背景色を変更するにはどのようにすればよいでしょうか?

605:604
11/03/18 15:07:37.88 hYpmyKaN
自己解決しました。 modify_base(state, color)で変更できました。

606:login:Penguin
11/04/29 21:13:49.14 8r02bpAR
squeeze gtkmm 2.4 gtkglextmm 1.2 pthread でプログラムを作っているんだけどプログラムの終了
時に以下のエラーが出るようになってしまいました。同じようなエラーを経験した方は居ませんでしょ
うか?

glibmm-CRITICAL **: Glib::ObjectBase* Glib::wrap_create_new_wrapper(GObject*): assertion `wrap_func_table != 0' failed
glibmm-WARNING **: Failed to wrap object of type 'GdkScreenX11'. Hint: this error is commonly caused by failing to call a library init() function.


607:606
11/04/30 22:26:19.43 VyP2E163
自己解決しました。何でコンパイルが通るんだ・・・


Gtk::Main kit( argv, argc );
Gtk::GL::init( argv, argc );


Gtk::Main kit( argc, argv );
Gtk::GL::init( argc, argv );


608:login:Penguin
11/05/02 11:45:41.61 izX8cIkn
通らない理由がないからな

609:login:Penguin
11/05/03 00:46:43.55 WBrmWZ0j
>>607
試してみたら普通にコンパイルエラーになる。
それと関係無いけど、gtkmmは中々むずいよ…

m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1"));
m_act_quit->signal_activate().connect(mem_fun(*this, &AppWindow::on_quit_action_activated));
void AppWindow::on_quit_action_activated()
{
Gtk::Main::quit();
}

とあるコードの一片だけど、敷居が高いというかなんというか…
そんで今はValaを使ってる。Valaだと↓こんな感じ。

var quit_action = builder.get_object("action_quit") as Gtk.Action;
quit_action.activate.connect(() => { Gtk.main_quit(); });


610:login:Penguin
11/05/03 18:07:59.69 6MgTkiYn
>>609
コンパイルが通る方は適当に作った変数を食わしてたんだけど何故か逆にしてもコンパイルが通る
今は書き直して本物のargc,argvを入れています。

valaか~・・・ドキュメント多い?


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