0

私は2つのpyqtプログラムを持っています。どちらも単独で実行できるはずですが、一方をもう一方から実行する必要があります。手動でのみ実行されるものは呼び出されfoo、2 つ目 (から呼び出したいものfoo) は呼び出されbarます。この例に従おうとしたところ、新しいウィンドウが表示されましたが、エラーが発生しました

AttributeError: 'bar' オブジェクトには属性 'exec_' がありません

作れそうだけど、何を入れたらいいのかわからない。では、最初のウィンドウのボタンをクリックして別のウィンドウをポップするにはどうすればよいでしょうか。

元のウィンドウを非アクティブにできる人へのボーナス ポイント。

私の関数が今どのように見えるかは次のとおりです。

barMaker = bar(self)
bar.exec_()

想像を絶する、私は知っています。

4

2 に答える 2

1

を使用して 2 番目の gui プログラムを呼び出しますか?

new_gui = subprocess.Popen("python "+path)

?

その後、最初の GUI を無効にするか、好きなように操作できます。新しい GUI は別のプロセスで実行されます。

于 2013-09-06T17:07:31.130 に答える
0

@ballsatballsdotballsの回答はうまくいきませんでしたが、非常に近かったです。ドキュメントを参照すると(Python2Python3で同じ)状態:

subprocess.Popen(args, ...)

argsプログラム引数のシーケンスまたは単一の文字列でなければなりません。デフォルトでは、実行するプログラムはargsifargsがシーケンスの最初の項目です。が文字列の場合args、解釈はプラットフォームに依存し、以下で説明します。

元の回答が投稿されてから (> 4 歳)、これが変更されたかどうかはわかりませんが、完全を期すために、次の Popen 構造が機能しました。

new_gui = subprocess.Popen(["python", path])

必要に応じて、「python3」に置き換えることもできます。

于 2018-02-17T16:31:01.247 に答える