5

gtkmm を使用してアプリケーションを作成しています。

いくつかの場合にのみアプリケーションのメイン ウィンドウに表示する単純なウィジェット クラスを作成しました。それ以外の場合は、ラベルを「無効」にして表示したいと思います。

それを実現するために、ウィジェットとラベルの両方を 1 つの VBox にパックし、それらを入れ替えるためにそれらを show() と hide() しました。

ただし、カスタム ウィジェットはラベルよりもはるかに大きいため、ラベルのサイズを少し変更する必要があります

label.set_size_request(x,y) を使用できることはわかっていますが、寸法を手動で入力すると機能します。ただし、使用する Gtk テーマなどによって、ウィジェットのサイズが少し異なる場合があることは承知しています。

*ウィジェットとまったく同じサイズのラベルを設定したいと思います。ただし、widget.get_height()* を使用しても機能しません 。常に 1 が返されます。


メインウィンドウのコンストラクター内からこれを行うことが手がかりになるかもしれません。

4

1 に答える 1

7

私は gtkmm で多くのことをしたことがなく、pygtk でもっと多くのことをしました。get_widthしかし、 /から意味のある値を取得するget_heightには、ウィジェットを実現する必要があると思います。そして、ウィジェットはまだウィンドウ コンストラクターに表示されていないと思います。

代わりに、タブを非表示にして gtk.Notebook を使用することをお勧めします。gtk.Notebook は、ラベルとカスタム ウィジェットの両方のサイズを制御します。

于 2011-03-22T19:22:09.383 に答える