我正在嘗試編寫一個程序,允許用戶在全屏Tkinter GUI中按不同的按鈕。這些按鈕預製件的操作對我的問題無關緊要,但我無法創建彈出對話框(askokcancel)來確認用戶想按下按鈕,然後在按下「ok」按鈕時正常運行該按鈕代碼的其餘部分。目前,我有這個計劃從通過/ etc/profile文件啓動運行,通過tkMessageBox從桌面運行時彈出不可見,從啓動運行時可見
sudo的納米/ etc/profile文件訪問
在這裏,我改變目錄到文件夾包含我的Python文件並將它加載我代碼,並在啓動時正確加載我的按鈕,並按下正確的按鈕彈出窗口出現在整個窗口。但是,當我嘗試通過桌面shell運行我的代碼時,一旦按下按鈕,彈出窗口會出現,但隱藏在根窗口後面。我無法點擊其他任何地方,然後按「標籤」和「輸入」允許我在兩個選項之間導航並選擇一個,但無法看到它。我有按鈕在shell中打印單詞,所以我知道彈出窗口實際上在那裏。
全屏使用overrideredirect功能,隱藏任務欄和其他選項。當它設置爲FALSE時,彈出按預期工作,但我試圖使GUI成爲屏幕上唯一的東西。
這裏是我的代碼的精簡版:
from Tkinter import*
import tkMessageBox
class Application(Frame):
def run(self):
tkMessageBox.askokcancel("Run Confirmation!", "Are you sure?")
print "RUN Code Intitates"
def createWidgets(self):
self.button1 = Button(self,height=15,width=20)
self.button1["command"] = self.run
self.button1.pack({"side": "left"})
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
root = Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.overrideredirect(1)
root.geometry("%dx%d+0+0" % (800, 480))
app = Application(master=root)
app.mainloop()
root.destroy()
我絕不是一個計算機科學專業,並只被用樹莓派,Tkinter的,和Python幾個星期的工作,所以如果我我錯過了一些基本的道歉。我用的是我的屏幕爲樹莓派取得8" 觸摸屏