問題タブ [drawingarea]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grid - Gtk.Grid にアタッチされている場合、Gtk.DrawingArea は空白です
(初投稿です、間違っていたらすみません…)
私はValaで教室をデザインできるプログラムを書いています。GUI には GTK を使用し (Vala はこれとうまく統合されています)、教室の図を描くには Cairo を使用することにしました (GTK にはデフォルトで付属しています)。
「教室」クラス (Gtk.DrawingArea のサブクラス) を作成しましたが、現在は正方形を表示するだけです:
アプリケーション用のクラスも作成しました。
そして、これが私の主な機能です:
classroom
ウィジェットをGtk.Grid
、選択したレイアウト ウィジェットに配置しました。コードをコンパイルして実行すると、空白のウィンドウが表示されます。
ただし、 を使用せず、使用(コメントアウトした) をGtk.Grid
追加するだけで、ウィジェットは正しく表示されます。classroom
root.add()
classroom
Gtk.Grid を使用してウィジェットを追加すると、ウィジェットが表示されないのはなぜですか?
これを修正するにはどうすればよいですか?
python-3.x - PyGtk3 - Gtk.DrawingArea がスクロールしない
私の問題は、GtkDrawingArea ウィジェットの GtkImage を置き換えたことと、GtkImage のようにスクロールしないことです。
これは、GtkImage と GtkDrawingArea (一度に 1 つずつ) の両方を配置する方法です。
- GtkScrolledWindow
- GtkViewPort
- GtkImage / GtkDrawingArea
- GtkViewPort
これで十分だろうと思いました。
GtkImage の場合:水平方向と垂直方向にスクロールすると、GtkImageViewport が表示すべき PixBuf の一部を読み込みます。
GtkDrawingArea の場合:スクロール バーが使用可能なすべての領域を占有するため、画像は移動しません。
ウィンドウのサイズを変更すると、スクロール時に表示されず、表示されるはずの画像の部分が表示されます。
注1 :画像に描画してピクセル座標を操作できるようにしたいので、Gtk.DrawingAreaとCairoを使用するのは良い考えだと思います。
注2: Gladeとscrolledwindow.add_with_viewport(drawing_area)を使用したコードの両方を試しました
python-3.x - PyGtk3 での Gtk.DrawingArea のサイズ変更
以下のコードを実行して、次のようなものを取得してください。
基本的に、Gtk.Scrolledwindow にもある Gtk.Viewport 内にある Gtk.DrawingArea をセットアップしました。上記のDrawingAreaで画像を描画し、2つのボタンを使用して画像を拡大縮小できます。
アプリケーションを実行します。また、いくつかのコールバックを設定したので、マウス ポインターを画像の上に置くと、次のことがわかります。
i) DrawingArea に入ると
ii) DrawingArea から出るとき
iii) DrawingArea の (x, y) と画像のピクセル強度
私が直面している問題は、十分な回数ズームアウトすると、画像が次のようになることです。
しかし、'mouse enter' および 'mouse leave' 信号と 'mouse motion' 信号は、DrawingArea が作成されたときと同じサイズのままであるように送信されます。マウスを画像の上に置き、画像の外側で DrawingArea の内側に移動して、ターミナルで出力を確認してください。
画像の外にホバリングしているときに信号が送信されないようにしたいと思います。つまり、可能であれば、DrawingArea のサイズを表示される画像のサイズに合わせます。