0

これは私が編集して動作させようとした現在のコードですが、まだ動作しません:/デバッグのヘルプは素晴らしいでしょう:) mainWindowクラスで定義されていない変数「self」と「parent」でエラーが発生します。 「class mainWindow」という行のエラーと同様です。両方の意味や修正方法が完全にはわかりません

import sys, Tkinter
sys.modules['tkinter'] = Tkinter
import Pmw

class Print:

    def __init__(self, text):
        self.text = text

    def __call__(self):
        print self.text

class mainWindow:

    def __init__(self,parent,balloon):
        self.balloon = Pmw.Balloon(parent)
        self.parent = parent
        self.menuBar = menuBar
        self.mainPart = mainPart
        self.buttonBox = buttonBox

    def Quit():
        root.destroy()

    menuBar = Pmw.MenuBar(parent,hull_relief = 'raised',hull_borderwidth = 1,balloon = self.balloon)
    menuBar.pack(fill = 'x')

    menuBar.addmenu('Run Control','Calibration,Download Configuration,Number of Triggers,Data Output File,Upload Configuration,Start DAQ,Quit')
    menuBar.addcascademenu('Run Control','Calibration','View and/or change the calibration',traverseSpec = 'z',tearoff = 1)
    menuBar.addmenuitem('Calibration','command','Display the DAC calibration',command = Print('display the DAC calibration'),label = 'Display DAC Calibration')

    menuBar.addmenuitem('Calibration','command','Display the calibration mask',command = Print('display the calibration mask'),label = 'Display Calibration Mask')
    menuBar.addmenuitem('Calibration','command','Change the DAC calibration',command = Print('change the DAC calibration'),label = 'Change DAC Calibration')
    menuBar.addmenuitem('Calibration','command','Change the calibration mask',command = Print('change the calibration mask'),label = 'Change Calibration Mask')

    menuBar.addmenuitem('Run Control','command','Download a configuration',command = Print('download configuration'),label = 'Download Configuration')

    menuBar.addmenuitem('Run Control','command','Set the number of triggers',command = Print('set number of triggers'),label = 'Number of Triggers')
    menuBar.addmenuitem('Run Control','command','Change the file where the data will be sent to',command = Print('set data output file'),label = 'Data Output File')
    menuBar.addmenuitem('Run Control','command','Upload a configuration',command = Print('upload a configuration'),label = 'Upload Configuration')

    menuBar.addmenuitem('Run Control','command','Start the data aquisition',command = Print('start data aquisition'),label = 'Start DAQ')
    menuBar.addmenuitem('Run Control','separator')
    menuBar.addmenuitem('Run Control','command','Close the GUI',command = Quit,label = 'Quit')
    menuBar.addmenu('Slow Control','Voltage, Current,Temperature,DAC Settings')
    menuBar.addmenuitem('Slow Control','command','Display the voltage',command = Print('display voltage'),label = 'Voltage')
    menuBar.addmenuitem('Slow Control','command','Display the current',command = Print('display current'),label = 'Current')
    menuBar.addmenuitem('Slow Control','command','Display the temperature',command = Print('display temperature'),label = 'Temperature')
    menuBar.addmenuitem('Slow Control','command','Display the DAC settings',command = Print('display DAC settings'),label = 'DAC Settings')
    menuBar.addmenu('Graphics','Channel Map,Energy Detector,Root Output,Slow Control Time,Histograms,One Event Display')
    menuBar.addmenuitem('Graphics','command','Display the channel map',command = Print('display channel map'),label = 'Channel Map')
    menuBar.addmenuitem('Graphics','command','Display the energy detector',command = Print('display energy detector'),label = 'Energy Detector')
    menuBar.addmenuitem('Graphics','command','Display the root output',command = Print('display root output'),label = 'Root Output')
    menuBar.addmenuitem('Graphics','command','Display the slow control time',command = Print('display slow control time'),label = 'Slow Control Time')
    menuBar.addmenuitem('Graphics','command','Display various histograms',command = Print('display histograms'),label = 'Histograms')
    menuBar.addmenuitem('Graphics','command','Display the one event display',command = Print('display one event display'),label = 'One Event Display')
    menuBar.addmenu('Edit Data Base','Make Configuration Files')
    menuBar.addmenuitem('Edit Data Base','command','Make the Configuration Files',command = Print('create configuration files'),label = 'Create Configuration Files')

    mainPart = Tkinter.Label(parent,text = 'GUI',background = 'white',foreground = 'white',padx = 100,pady = 100)
    mainPart.pack(fill = 'both', expand = 1)

    buttonBox = Pmw.ButtonBox(parent)
    buttonBox.pack(fill = 'x')
    buttonBox.add('Start\nRoot', command = Print('start root'))

if __name__ == '__main__':
    root = Tkinter.Tk()
    Pmw.initialise(root)
    root.title('pCT GUI')
    root.mainloop()
4

2 に答える 2

0

の最初の引数は、属するMenuBar親ウィンドウを指定することです。MenuBar定義していないため、エラーが発生します。MenuBarが最上位のウィジェットの場合は、ルートにリンクするだけです:

root = Tk()
menuBar = Pmw.MenuBar(root,
    hull_relief = 'raised',
    hull_borderwidth = 1,
    balloon = self.balloon)
menuBar.pack(fill = 'x')

root.mainloop()
于 2013-10-01T08:32:16.747 に答える
0

すべてのコードと正確なエラー メッセージを投稿する必要があります。これにより、より適切なサポートが可能になりますが、投稿した内容から、問題は次のように思われます。

class foo:

空です。だからあなたはそれが次のように見える必要があります

class foo:
    pass

エラーにならないように。

親が定義されていないのは、おそらく変数parentを定義したことがないという事実によるものであるため、次の行に沿って何かが必要になる可能性があります。

parent = Tkinter.Tk()
于 2013-10-01T08:32:40.017 に答える