Pythonで長い計算で使用される変数を制御する簡単なグラフィカルインターフェイスが必要です。私が問題を説明し、私がよく知っている解決策をMATLABに示しましょう。私はむしろPythonの初心者です。長時間の計算中に変数を制御するための最小限のグラフィカルインターフェイス
私はこの関数f
に変数x
を使用しています。
function f
x = 1;
for n = 1:10
fprintf('%f\n', x)
pause(1)
end
end
私は、グラフィカルなインターフェイスを持つ計算中x
の値を変更できるようにしたいです。 Matlabでは、これは比較的正確に行うことができます。最初にx
をglobal
という変数に変更してから、x
を更新する単純なコールバックでウィジェットを作成する必要があります。最終的なコードは:
function computation_with_gui
% the main function simply creates the control and calls f.
uicontrol('Style', 'slider', 'Min', 0, 'Max', 100, 'Position', [0 0 400 20], 'Callback', @callback)
f();
end
function callback(h, d)
% the callback simply updates x
global x
x = h.Value;
end
function f
% function f now declares x as global
global x
x = 1;
for n = 1:10
fprintf('%f\n', x)
pause(1)
end
end
上記のスクリプトは、スライダー(ここでは重要ではない別のウィジェットかもしれない)を表示し、計算を開始します。スライダーは計算中にフリーズされません。x
の値を制御するために使用することができます。これはf
で表示されます。最後に、f
が完了するとプログラムは停止します。全体として、このシンプルなグラフィカルインターフェイスをf
に追加するために必要なコードは、ごくわずかです。
私の質問は、Pythonで何か似たようなことをすることですか?私は明らかにこの場合の簡潔さを支持する。私の好みはPyQt5に行きます(単にそれが私の設定に付属しているからです)。しかし、もし別のフレームワークがもっと簡潔にすることができれば、それは良いことです。ウィジェットは、これを簡単にするならば、スライダー以外の何かになります。
[guidata](https://pypi.python.org/pypi/guidata)パッケージを使用してください。それはPyQt5に基づいているので、あなたのためにインストールするのは簡単です。 – TheBlackCat
Python GUIに関するチュートリアルをお探しですか?それはそれがどのように見えるかです。 –
@ mad-physicistそうですね。 Matlabは約10行で私の仕事のための作業GUIを提供することができます。私はそれがPythonでも可能かどうかを尋ねています。 GUIを書くことを学ぶことは、より広範で複雑な問題です。たとえば、私のMatlabコードでは、実際にMatlabのGUI知識は必要ありません。 – user1735003