web-dev-qa-db-ja.com

メインウィンドウの新しいインスタンスを作成、python gtk

python and gtkはかなり新しいです。Quicklyを使用してUbuntu App Showdown用のアプリを作成しています。ユーザーが[新規]をクリックすると、メインウィンドウの新しいインスタンスを作成します。

リンクされたボタンとメニュー項目があります。つまり、クリックされたときにコマンドラインに「新規」を印刷させることができます。しかし、新しいインスタンスを作成する方法を検索しましたが、見つけることができません。

2
Luke

同じプロセスでアプリケーションの新しいウィンドウを開始する場合は、すぐに作成したウィンドウクラスの新しいインスタンスを作成するだけです。

私のアプリはすぐに呼び出され、python module ./quickly_gtk/init.pyに次の行があります(ファイルの下部にあります):

_# Run the application.    
window = QuicklyGtkWindow.QuicklyGtkWindow()
window.show()
_

もう一度呼び出すと、プライマリウィンドウの新しいインスタンスが開始されます。ただし、Quicklyが生成するコードは、実際に一度にこのウィンドウの1つのインスタンスを実行することを意図しているため、コードを作成する必要がある副作用があります。

たとえば、ウィンドウを閉じるイベントを、プロセス全体を終了するコールバックにすばやく接続します。複数のウィンドウがある場合、ウィンドウのon_destroy()メソッドをオーバーライドする必要があります。これを行うことに出くわす他の問題がある可能性があります。

2
mhall119