2
我一直在使用Tix創建一個comboBox,如果輸入框留空,它會導致間歇性崩潰。Tix ComboBox導致python2.7崩潰
我是新來的Python和GUI編程非常新,所以我一直在使用示例來教自己的東西。
使用下面的示例代碼時,您應該能夠在輸入框中輸入值或從下拉菜單中選擇表單,但是如果將輸入字段留空並按下go,則會導致python崩潰。
import Tix
import tkMessageBox
class App(object):
def __init__(self, window):
window.winfo_toplevel().wm_title("test")
self.window = window
self.combo = Tix.ComboBox(window)
self.combo.insert(Tix.END, 'thing1')
self.combo.insert(Tix.END, 'thing2')
self.combo.entry['state'] = "normal"
self.combo['editable'] = True
self.combo.pack()
button = Tix.Button(window)
button['text'] = "Go"
button['command'] = self.go
button.pack()
def go(self):
tkMessageBox.showinfo('info', self.combo['selection'])
if __name__ == '__main__':
root = Tix.Tk()
App(root)
root.mainloop()
========================= 崩潰詳情:
Problem signature:
Problem Event Name: APPCRASH
Application Name: python2.7.exe
Application Version: 0.0.0.0
Application Timestamp: 4cfbf049
Fault Module Name: ntdll.dll
Fault Module Version: 6.1.7600.16385
Fault Module Timestamp: 4a5bdb3b
Exception Code: c0000005
Exception Offset: 0002e23e
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 2057
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
所以
一]這個例子做錯了什麼?
B]有沒有更好的方法?
C]我應該使用Tix嗎?
我注意到有些人似乎迴避TIX,只使用Tkinter。是否有一個原因?我應該不使用Tix嗎?
++++++++++++++++++++++++++++
確定,所以我管理通過增值猴補丁此=」',以便返回字符串不爲空,然後在我需要時返回lstrip()值。
self.combo = Tix.ComboBox(window, value =' ')
...
tkMessageBox.showinfo('info', self.combo['selection'].lstrip())
非常難看,但阻止我從現在崩潰;直到有人更聰明才能給我更好的答案。 如果用戶刪除空間,然後按'走'它會再次導致崩潰!
我希望你在那裏,當我第一次開始使用Python,並指出我寬x! Wx看起來很神奇,並且有很好的文檔。 。 。 我只是可能會重寫wx中的所有內容 – user600295 2011-04-14 17:20:38