基本上我的問題是在用python編寫的tablelist中配置組合框(而不是直接使用tcl)。我已經準備好,可以說明問題的例子,但是,讓之前看到所需的步驟來運行它:在python中使用tablelist wrapper配置組合列表中的組合框的值
- 複製從here的tablelist包裝,並將其保存爲「tablelist.py」,然後把它放在示例代碼目錄。
- 從here下載「tklib-0.5」,並從「modules」目錄下複製「tablelist」目錄到示例代碼目錄。
這是代碼:
from tkinter import *
from tkinter import ttk
from tablelist import TableList
class Window (Frame):
def __init__(self):
# frame
Frame.__init__(self)
self.grid()
# tablelist
self.tableList = TableList(self,
columns = (0, "Parity"),
editstartcommand=self.editStartCmd
)
self.tableList.grid()
# configure column #0
self.tableList.columnconfigure(0, editable="yes", editwindow="ttk::combobox")
# insert an item
self.tableList.insert(END,('Even'))
def editStartCmd(self, table, row, col, text):
#
# must configure "values" option of Combobox here!
#
return
def main():
Window().mainloop()
if __name__ == '__main__':
main()
正如你會看到它導致在單個列/細胞窗口的初始值(偶數)。通過單擊單元格將顯示組合框(因爲使用「editstartcommand」)並且它沒有任何值(無)。我知道編輯單元格的小部件時,必須使用「editwinpath」命令來獲取臨時小部件的路徑名,但該方法只是返回指向不可調用的組合框部件的地址字符串。
我會很感激任何幫助或可能的解決方案。