0
我正在開發一個使用python gtk +和glade的應用程序。我的glade文件格式是gtk-builder。我有兩個窗口 - 一個主窗口和一個登錄窗口。裏面__init __()我運行登錄對話框窗口,這樣我可以確保焦點不會切換到主窗口,直到用戶從登錄窗口發出OK信號。當使用以下代碼完成此操作時,用戶必須在標題欄上的[x]上單擊兩次以退出應用程序。當我使用loginWindow.show()而不是run()時,它可以很好地工作,但焦點問題出現在那裏。我該如何解決這個問題?ondestroy不執行回調函數
import sys
try:
import pygtk
pygtk.require("2.8")
except:
pass
try:
import gtk
except:
sys.exit(1)
class netChat:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("netchat.glade")
self.builder.connect_signals(self)
self.loginWindow = self.builder.get_object('loginWindow')
self.mainWindow = self.builder.get_object('mainWindow')
self.message = self.builder.get_object('message')
self.timeLine = self.builder.get_object('timeLine')
self.loginWindow.run()
def onSend(self, widget):
text = self.message.get_text()
myBuffer = self.timeLine.get_buffer()
myBuffer.insert_at_cursor(' '+text+'\n')
self.message.set_text('')
print "on Send"
def mainQuit(self, widget):
print "Quiting, goodbye!"
sys.exit(0)
def loginQuit(self, widget):
print "Login Quit, goodbye!"
sys.exit(1)
if __name__ == "__main__":
myChat = netChat()
gtk.main()
我試着爲兩個窗口設置相同的mainQuit()回調函數。但是這沒有什麼區別。謝謝你的幫助。
不,我沒有運行登錄「OK」的onClick()主窗口。兩個窗口同時彈出,但登錄窗口在登錄前只有焦點。代碼已完成,我是否也應該發佈glade文件? 謝謝 –