begin_resize_drag はこの動作には使えなかった…
マウスボタンを離すまで motion_notify_event シグナルが発行されない。
ウインドのリサイズが完了するまで普通の動きになる、あぁ駄目だ。
つーかリサイザにボタンを使うと motion_notify_event シグナルが発行されない。
GtkDrawingArea でも使うとするか。
パッキングの展張を全部「いいえ」にして Windows のように自前計算と考えた。
GtkContainer の check_resize シグナルで width_request プロパティを弄くれば…
それでは当然小さくリサイズすることができなくなってしまう、あぁ駄目だ。
どうでもいいが「展張」なんて日本語は無いヤン!
パッキングのプロパティを動的に変更できれば楽なんだけど…
「フィル」にしたウイジェットの幅が取得できないのでどっちにしても。
size_request() は最小値だし get_size_request() は -1 だし。
def gtk_on_drawingarea2_motion_notify_event(self, widget, event): if self.resize_list: x = event.x_root - self.resize_x if self.resize_list + x > 0: # この上に Treeview が乗っている self["scrolledwindow1"].set_property("width_request", self.resize_list + x) self["y901window"].resize(int(self.cx + x), int(self.cy)) def gtk_on_drawingarea2_button_press_event(self, widget, event): self.resize_list = self["scrolledwindow1"].get_property("width_request") self.resize_x = event.x_root self.cx, self.cy = self["y901window"].get_size() def gtk_on_drawingarea2_button_release_event(self, widget, event): self.resize_list = 0
でなんとか希望どおりの動きになったけどチラツキまくる。
ハンドラを抜けるまで描写ロックなんてできないのかな?
GTK 側が意図していない動作をむりやり行うのは苦労するわ。
いつまでたっても更新ができないのでとりあえずこのままいこう。
とも思うけど今のままでは二倍表示とかを実装時に詰まりそうなんですけど…