# -*- coding: utf-8 -*-
import tkinter as tk
import os
remember_file_name='remember.txt'
root_size=(400, 280)
input_root_size=(300, 150)
class windowsremember :
def __init__(self) :
self._root = none
self._text = none
self.initwindows()
def initwindows(self) :
self._root = tk.tk()
self._root.wm_attributes('-alpha', 0.5) #透明度
self._root.wm_attributes('-toolwindow', true) #取消縮小擴大按鈕
self._root.wm_attributes('-topmost', true) #置於頂層
self._root.title('123')
self._root.geometry(str(root_size[0])+'x'+str(root_size[1])) #設定大小
self._root.geometry('+0+0')
self._btn_add = none
self._btn_sub = none
self._input_text = none
def showtext(self) :
#photo = photoimage(file='c:\\users\\administrator\\desktop\\timg.gif') #python 預設支援gif格式
#imglabel = label(root,image = photo)
#self._text.pack() #side=tk.left)
end_dir = os.getcwd()
file_path = end_dir + '\\' + remember_file_name
file = open(file_path, 'r', encoding='utf-8')
file_desc = ''
idx = 1
for line in file.readlines() :
file_desc = file_desc + str(idx) + ' ' + line
idx += 1
file.close()
self._text = tk.label(self._root, text=file_desc, justify='left', anchor=tk.w)
self._text.place(x=5)
self._btn_add = tk.button(self._root, text='add', command=self.addtext, activebackground='blue', anchor=tk.n)
self._btn_add.place(x=root_size[0]/2-50, y=root_size[1]-50)
print (self._btn_add.winfo_width())
self._btn_sub = tk.button(self._root, text='sub', command=self.subtext, activebackground='blue', anchor=tk.n)
self._btn_sub.place(x=root_size[0]/2+30, y=root_size[1]-50)
def addtext(self) :
add_root = tk.tk() #?????????????????????
add_root.title('please input:')
add_root.wm_attributes('-toolwindow', true)
add_root.wm_attributes('-topmost', true)
add_root.geometry(str(input_root_size[0])+'x'+str(input_root_size[1]))
self._input_text = none
#label = tk.label(add_root, text='input:', height=5, width=input_root_size[0]-50)
#label.place(x=5)
self._input_text = tk.strin**ar()
tmp = tk.entry(add_root, textvariable=self._input_text, width=int(input_root_size[0]/10))
tmp.pack()
def _sure_cb() :
print('====', self._input_text.get())
btn_sure = tk.button(add_root, text='sure', command=_sure_cb, activebackground='blue', anchor=tk.n)
#btn_sure.place(x=input_root_size[0]/2, y=input_root_size[1]-50)
btn_sure.pack(side=tk.bottom)
add_root.mainloop()
def subtext(self) :
pass
def main() :
root = windowsremember()
root.showtext()
root._root.mainloop()
main()
**有點醜,總的思想就是,tk.tk()建立乙個視窗後,點某個按鈕再建立乙個tk.tk()視窗,但是self._input_text.get()獲取輸入的資料失敗,原因是,tk.tk()建立的是乙個新視窗,無法與原先的視窗獲取有效互動。
解決方法:在畫 #?????????的那一行,修改為tk.toplevel(),tk.toplevel()是和tk.tk()有著相同方法的視窗,唯一的是,他是乙個頂級的彈出類視窗。
vmvare中新建rancher os虛擬機器
在生產中執行docker,最小 最簡單的方法之一是使用rancheros。rancheros中的所有元件都是由docker管理的容器執行,包括系統服務,如udev和syslog。因為rancheros只包含執行docker所需的服務,所以rancheros比大多數傳統作業系統小得多。通過刪除不必要的...
Nuke中新建執行緒的方法
寫完後在menu.py中通過os.system path 方法即可開啟document。但問題出現了。這個說明文件用word開啟後會占用nuke主線程,導致nuke陷入假死狀態。只有關閉word才可以解除nuke假死。也就是說,實際上,word與nuke是共用同乙個執行緒,顯然這是不可接受的。於是寫...
48 tkinter視窗居中
import tkinter as tk 匯入tkinter模組 計算視窗居中的位置 def get window positon width,height window x position root.winfo screenwidth width 2 window y position root...