2016-05-16 17 views
0

私はPythonを使ってBlenderのアドオンを開発しています。 は、私はすでに、このような何かWindows用の作業コードをした:Linuxのメッセージボックス

from ctypes import * 

user32 = windll.user32 
Answer = user32.MessageBoxW(None, 'some question here', 'title', 4 | 0x40) 

if Answer==6: 
    print('You choose YES') 
else: 
    print('You choose NO') 
残念ながら

(と明らかにし)、それは、Linuxで動作しません。 私は使用について読むTkinterは解決策かもしれませんが、Linuxにはまだインストールされていません。以前はパッケージをインストールする必要のないソリューションを使用することをお勧めします。

誰かがLinux(またはクロスプラットフォーム)ソリューションを提案していますか?

ありがとう

+0

https://en.wikipedia.org/wiki/Zenity bashスクリプトから[ダイアログのサブプロセス –

+0

が重複する可能性とそれを呼び出します](http://stackoverflow.com/questions/8354482/dialog-from-bash-script)(すべての答えを読む)。 –

+0

すでに書いたように、私は以前にパッケージをインストールする必要がないソリューションを探しています。 –

答えて

1

デフォルトのインストールでは、pythonのデフォルトビルド全体が含まれていません。 Pythonモジュールのリスト(tkinterを含む)は、配布用にblenderのバージョンをパッケージ化するときに除外されます。あなたは正確なリストhereを見つけることができます。 this exampleで使用されているinvoke_props_dialogのような利用可能なウィンドウマネージャメソッドのいくつかに興味があるかもしれませんが、一般的にこれらのメソッドはあなたが行くべき方法ではありません。

ユーザーからの可変入力を取得するための2つの一般的な方法があります。最初のプロパティは、ユーザーが選択したときにユーザーが調整でき、スクリプトの実行時に使用されるプロパティです。もう1つの方法は、演算子のプロパティです。

プロパティは、いくつかの既存のクラスに対してbe addedを編集し、ユーザが編集するためにpanelsに表示できます。

ユーザーがいくつかのキーを押す、ボタンをクリックする、メニュー項目を選択するなどの操作は、オペレーターが行います。オペレータは、その結果を変更するプロパティを持つことが一般的です。たとえば、UV球を追加してF6を押すと、球の幾何学的形状やサイズと位置を調整できます。これらのプロパティは、ツールシェルフ領域の下部にもあります。

uvsphere options

this exampleに示すように、あなたはあなたのオペレータのクラスにプロパティを追加することができ、これらの特性は、UV球の例のように同じユーザによって調整することができます。また、あなたがクリックするユーザーのためのボタンを配置するときに使用する値を指定することができます -

def draw(self, context): 
    row = self.layout.row() 
    row.operator('object.example_operator', text='go with 6').choice = 6 
関連する問題