2016-10-05 6 views
2

私のアプリには疑問符のついた小さなボタンがあります。クリックすると、アプリケーションの機能を説明するのに役立つ関数のドキュメント文字列が表示されます。Python PyInstaller TkinterボタンはMessageboxに結びついていません

問題は、私はpyInstallerのを使用して単一の.exeファイルを構築し、クリックされたときに、この疑問符ボタンは、何もしない、です。

レクリエーションステップ

  1. pyinstaller.exe --onefile --windowed run.py
  2. distフォルダに移動して、単一のexeファイルを実行するようrun.py
  3. オープンコマンドプロンプト
  4. ペースト以下のファイルを保存
  5. クリック?ボタンを押しても何もしないことに気づく

run.py

import tkinter as tk 
from tkinter import ttk 

''' pyinstaller.exe --onefile --windowed run.py ''' 

def someotherfunction(): 
    ''' 
    This is some message that I 
    want to appear but it currently doesn\'t 
    seem to work 

    when I put try to launch a messagebox 
    showinfo window... 
    ''' 
    pass 

def showhelpwindow(): 
    return tk.messagebox.showinfo(title='How to use this tool', 
         message=someotherfunction.__doc__) 

root = tk.Tk() 
helpbutton = ttk.Button(root, text='?', command=showhelpwindow, width=2) 
helpbutton.grid(row=0, column=3, sticky='e') 
root.mainloop() 

下記の私のセットアップ:

  • pyInstallerの3.2
  • のWindows 7
  • のPython 3.4.2

私は--noupxオプションを追加しようとしたが、それはそれを修正しませんでした。

EDIT:

私は、このボタンをクリックすると、この時間とコンソールが今私にエラーを示している--windowedオプションを削除しました。

Exception in Tkinter callback 
Traceback (most recent call last): 
    File "tkinter\__init__.py", line 1533, in __call__ 
    File "run.py", line 156, in showhelpwindow 
AttributeError: 'module' object has no attribute 'messagebox' 
+1

'--windowed'オプションを削除し、コマンドラインから.exeファイルを実行すると、ボタンをクリックしたときにエラーが発生しますか?私は自分自身でそれをやるが、今はPython 3をインストールしていない。 – Repiklis

+0

@Repiklis助けてくれてありがとう!私はあなたが示唆したようにして、問題を明らかにしました。私はimport文を使ってmessageboxモジュールをインポートする必要がありました。私は下に私の仕事のソリューションを投稿します。 – Jarad

答えて

0

以下の3行目が解決策です。 tkinter.messageboxモジュールを明示的にインポートする必要がありました。

関連する問題