我遇到了问题,我无法在互联网上找到答案。也许你可以帮助我
我有一个名为project.py的模块 我的主要功能是这样的:
def main():
gtk.main()
return 0
if __name__ == "__main__":
cale = MainWindow()
cale.create()
main()
cale.create()是创建主窗口的函数。我想从模块module1.py中的类调用其他函数(cale.reload())来刷新我的窗口
我这样称呼它(首先我在module1中有导入项目)
project.cale.reload()
但它表明项目模块中没有名为cale的变量。我不能称之为
project.MainWindow().reload()
因为它会创建另一个对象而我不想这样做。我想使用cale对象。
请你告诉我怎么做?
编辑: 我的代码 project.py
# -*- coding: utf-8 -*-
from array import *
import calendar
import datetime
import pygtk
pygtk.require('2.0')
import gtk, pango
import time
import gobject
import threading, thread
import module1
class MainWindow:
app = module1.Appointment()
def reload(self):
(...)
def create(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.date = None
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Kalendarz")
self.window.set_border_width(5)
self.window.connect("destroy", lambda x: gtk.main_quit())
(...)
self.button_array[i][j] = module1.AppointmentWindow(i,j, now, self.menu.current_doctor)
(...)
def main():
gtk.main()
cale.app.db.close()
return 0
if __name__ == "__main__":
global cale
cale = MainWindow()
cale.create()
print "zu"
main()
print "ok"
module1.py
# -*- coding: utf-8 -*-
import calendar
import datetime
import pygtk
pygtk.require('2.0')
import gtk, pango
import time
import project
import patient
class AppointmentWindow:
def __init__(self, i, j, now, current_doctor):
self.menu = gtk.Menu()
menuitem1 = gtk.MenuItem("Dodaj")
(...)
menuitem1.connect("activate", self.menuitem4_response)
self.menu.append(menuitem1))
self.lab = patient.Appointment()
self.button = gtk.Button(self.lab.get_label(self.now, self.j, self.current_doctor))
self.button.connect("clicked", self.menu_display)
def menuitem4_response(self, widget):
project.cale.reload()