Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the easy-fancybox domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the urvanov-syntax-highlighter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the advanced-ads domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: 関数 _load_textdomain_just_in_time が誤って呼び出されました。lancr ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114
ダイアログでファイルを選択する。 | 診療放射線技師がPythonをはじめました。

ダイアログでファイルを選択する。

ダイアログでファイルを選択する。

ファイルを開こうとした際、コードが保存されているフォルダと同じ場所にファイルを移動していたと思いますが、 これって、面倒ですよね。

そこで、今回は別フォルダにある画像でもダイアログを使ってファイルを選択する方法を示していきたいと思います。

pythonのGUIインターフェイスであるTkinterというものを使っていきます。


付け加えるコード

コードは以下となります。

前回も出てきましたが、関数というものを作っていきます。

難しく考えなくて大丈夫です。

何度も行う処理を一か所に書いておくと考えておけばいいと思います。


def ○○○():   ○○○の部分は関数名。 今回はfileselectという名前

という部分がありますが、その下の部分はインデント(字下げ)されていると思います。その下がっている部分までが一つの処理(関数)として扱われます。

そして、その処理は、プログラム途中で名前を指定してあげることで呼び出すことができます。

呼び出し方は

○○○()

だけです。()内は、関数に渡す情報を記載しますが、それは今後ということで。

それでは前回作った、CT画像のWW,WLをスライダーを使って調整するのプログラムにダイアログを使ってファイルを選択する機能をを追加していきたいと思います。

まずは、前回のimportの部分の下に今回のコードをペーストします。

続いてダイアログを開いてファイル名を指定する部分を関数として記載していきます。

前回のプログラムでは

ds = pydicom.dcmread(‘CT000060’)

の部分でファイル名を指定していますが、この前に変数(fname)としてファイルの絶対パスを受け取りたいと思います。

fname = fileselect ()

とすることでfnameという関数にfileselect関数で取得した絶対パスを格納することができました。

そして、直接ファイル名で指定していた部分を変数fnameとすることでダイアログで選択したファイルを開くことができます。

それでは、修正したコード全体を以下に示します。



完成コード

いかがでしたか?

次回は、ダイアログで複数ファイルを選択する方法をやってみたいと思います。


広告
デル株式会社

環境

  • windows10
  • python3.6.1
  • Anaconda custom(64-bit)
  • PyCharm2020.2(Communication Edition)



広告
上新電機 パソコン買取サービス

Categories:

,

Tags: