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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
894: 2020/05/17(日)12:10 ID:ztTG+X4j(1) AAS
インプットメソッドの挙動の質問なんですが、

GTK+でテキストフィールドに選択された文字列がある状態から日本語入力を開始すると、
未確定文字が選択文字列の前に挿入されますが ( |選択文字列| -> |あ}選択文字列| 等)、
他のプラットフォームだと、日本語の入力開始時点で選択文字列は削除されるようです。
(|選択文字列| -> |あ|)

で、前者のGTK+の挙動を後者のようにしたいのですが、それって何かの設定で
いけたりしますかね? それともGTK+のテキストフィールド等のクラス (GtkEntryとか)の
コードをいじったりしないと無理ですかね?
895: 2020/11/04(水)15:58 ID:mhM0YxaG(1/4) AAS
Gtkmm使っています…。メインウィンドウからもう一つウィンドウを開きます…
このウィンドウにはテキストビューがあるとします…。巨大テキストを貼り付けて…メモリ使用量を増やします…。
そして…ウィンドウを閉じます…。window->signal_delete_event().connectで設定したメソッドで…delete windowをします…。
仕様では…メモリが解放され…メモリ使用量が減るはずなのですが…減りません…。
調べていたら…もっと深刻な事に気づきました…。G_OBJECT(なんかのWidget->gobj())->ref_countで参照カウントを見れます…
Glib::RefPtrはよく使います…がヘッダーで宣言せずに…ローカルで何回も宣言して受けたりします…
builder->get_widgetで親Widgetから取ったりしますが…ref_countが加算され…スタックを抜けても残ってます…。
Glib::RefPtrはヘッダーで宣言して…1つしか使わないようには変えれます…。
普通のWidgetの場合は…builder->get_widgetで何回も取得したりしますが…これもref_countが加算されます…
参照の値渡しでガンガン渡したりもしますが…普通のWidgetでもref_count増大は問題なんでしょうか?スタックを抜けてもあります…。
省2
896: 2020/11/04(水)19:19 ID:mhM0YxaG(2/4) AAS
895です…。メモリ管理はこれでOKなんだと思う…巨大テキストをdeleteしてもメモリは減らないが…
再度…ウィンドウを立ち上げて…巨大テキストを貼っても…メモリは…増えない…
もちろん…ウィンドウを同時に2個立ち上げてで巨大テキストだと増えます…。
Glib::RefPtrのローカル宣言だけど…問題ない気がする…Windowをdeleteすると…消えてるようだ…。
どうも…今日は…メモリ管理で悩みましたが…このままでOKそうです…。
アプリをバイナリエディタとかでクラックできるのは…こういう仕様だからかもしれません…。
どうしても…メモリを減らしたい場合は…どうすればいいのかねぇ…解りません…。
897: 2020/11/04(水)19:40 ID:mhM0YxaG(3/4) AAS
895です…geditでも減らないようです…これはなんとかならないんですか!?
明日は…アロケートあたりを調べてみます…。
898: 2020/11/04(水)19:51 ID:mhM0YxaG(4/4) AAS
895です…別プロセスでWindow起動な気がしてきました…。
とにかく調べていきます…。
899
(1): 2020/11/05(木)19:14 ID:4YZKWaEw(1) AAS
895です…テキストビューを300MBまで上げて閉じると…100MBくらい減りました…。
Linuxのアロケータの問題だと思います…。
900: 2020/11/06(金)00:23 ID:JXwz9Ncv(1) AAS
どういう調査をしてるか分からんけど、mallocってのはユーザーランドのライブラリで、freeしたからといって直ぐにkernelに返却する訳じゃないぞ
メモリリークを調査したいならValgrindとか専用のツールを使わないと
メモリ周りの調査は簡単には行かないよ
901: 2020/11/08(日)08:09 ID:O49Zrc/N(1) AAS
>>899
>Linuxのアロケータの問題だと思います

アロケータとはどんなものかをちゃんと理解してるのかと。
汎用アロケータのせいにできる範囲というものがある。

geditとか、そんなバカでかいファイルを開くことを想定してなくて、チマチマメモリを
割り当てるようになってたりするのでは。

ただ確かにLinux以外はどうかはちょっと興味がある。mallocの使い方は同じでもさくさく
mmap/munmapしたりするのもしれない。それはそれで別の問題もありうるが。
902: 2020/11/17(火)07:44 ID:xVdi3jrK(1/3) AAS
煮詰まっています…ダイアログに関してです…。Gladeです。
まず…トップレベルに指定すると…Gnomeにウィンドウが2個開いたマークが付きます。
これが気に入らない…メッセージ用のダイアログですが…こんなものにウィンドウ2個開いたみたいな感じに
なるのは許せない…設定ダイアログでもそうです…メインウィンドウのみ起動していると見せたい…。
ウィンドウの属性の型をポップアップにしました…Gnomeでのインスタンス表示マークは…
メインウィンドウのみになっています…美しい…しかし…今度はリサイズができなくなりました…
これでは設定画面とかでは使えません…困りました。ID設定の横の複合というチェックボックスを付けました…
うまく行きました…が…今度は…template classになってしまい…Gtk::Builderで読み込めなくなりました…。
その他…Resize grip…駄目でした。ウィンドウが2個開いたように見えるケースで…
ページャーのスキップ、タスクバーのスキップなどやりましたが…駄目…2個開いたマークです…。
省2
903: 2020/11/17(火)07:55 ID:xVdi3jrK(2/3) AAS
902です…。Gtkmmですが…Gtk::Builderでtemplate classを読む方法があるかもしれません…。
明日は…そこら辺を調べてみます…。
904: 2020/11/17(火)09:47 ID:xVdi3jrK(3/3) AAS
902です…。できました!できました!dialog->set_transient_for(*window);でできました!
905: 2020/11/18(水)08:54 ID:tqB1zz0Z(1/2) AAS
902です…。dialog->set_attached_to(*window);だと背景は透過のままだね…。
親ウィンドウが暗くならない…。設定画面とかでは…こっちの方が美しいかもしれない…。
906: 2020/11/18(水)10:11 ID:tqB1zz0Z(2/2) AAS
902です…駄目だ…dialog->set_attached_to(*window);だと…
Gnomeでウィンドウが2個立ち上がったマークが付きます…美しくない…
スマートな方法は…なんかねぇかなぁ…。
今の所…set_transient_forで親ウィンドウがグレーになる方法が最善…。
907
(1): 2020/11/22(日)09:22 ID:RT2ZlOP6(1) AAS
Gtkmmです…スレッドに関してです…。Glib::ThreadとGlib::Dispatcherに関してですが…
例えば…ストップウォッチを実装したとします…UIの更新は…Dispatcherを介したほうが安定します…。
UI更新を全てDispatcherにすると…Dispatcherは…引数を渡せないので…std::queueを使う必要が出てきます…。
ぶっちゃけ…Dispatcherに任せずに…スレッド内部でUI更新をするケースって…どうなんでしょうか?
スレッドでUI更新か?ディスパッチャでUI更新か?って所で…悩んでいます…。
ディスパッチャを介さずに…スレッドでUI更新で…安定してくれれば…いいんだけど…
判断に困り果てています…。
908: 2020/11/22(日)11:32 ID:VOmbkXjB(1) AAS
>>907
std::queueはスレッドセーフじゃないぞ
つうかstd全部そう
909: 2020/12/24(木)21:06 ID:WbxxDuOR(1/4) AAS
GtkのTextViewまたはSourceViewについて…50万行程度のテキストだと…geditでも…DRAWのバグなのか…
画面が真っ黒になるブロックがある…これって端末のスペックの問題?それともGTKのバグ?
とりあえず…俺のノートでは…50万行程度のテキストで…画面が真っ黒になるブロックが発生する…
C++で揚げ足を取るのが目的なので…別にLinuxじゃなくてもいいのだが…バグでなんかやる気なくしてきた…
910: 2020/12/24(木)21:23 ID:WbxxDuOR(2/4) AAS
AMD Radeon™ HD 7470M
512MB(GDDR5)

ビデオメモリかなぁ…。
911: 2020/12/24(木)21:26 ID:3eZE6ohA(1/2) AAS
個人情報なのかも
912: 2020/12/24(木)21:36 ID:WbxxDuOR(3/4) AAS
でも…この状態で…ブラウザ使っても支障ないし…GTKのバグ!?
凹んできた…。
913: 2020/12/24(木)21:43 ID:WbxxDuOR(4/4) AAS
radeontopでは…vram 0.66%…バグだ…やる気なくしてきた…。
C++で揚げ足取りたいだけなので…VC++でもいいんだ…。
しばらく…凹むわ…。
1-
あと 89 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.017s