2016-09-03 6 views
-1

私は、何か他のことを学ぶ前に、いくつかの入力フィールドの内容をコンソールに出力できるようになるために、tkinterの基本を理解しようとしてきました。私はそれが私の望むように見えたが、私が必要としていた機能は持っていなかった。私がクラスを作成し、そのようにすることを提案しました。私のGUIは、追加したウィジェットのない空のフレームです。誰がなぜこのことが分かっているのですか?tkinterクラスが煩わしさを感じています

from tkinter import * 

class Information: 
    def __init__(self, master): 
     frame = Frame(master) 
     frame.pack() 

     self.titleLabel = Label(frame, text='Welcome to the Redaction Solutions editor!\nPlease enter the requested filepaths below.') 
     self.titleLabel.pack(side=TOP) 

     self.originalLabel = Label(frame, text='File to be edited') 
     self.originalLabel.pack(side=LEFT) 
     self.originalEntry = Entry(frame) 
     self.originalEntry.pack(side=RIGHT) 

     self.namesLabel = Label(frame, text='Items to be removed') 
     self.namesLabel.pack(side=LEFT) 
     self.namesEntry = Entry(frame) 
     self.namesEntry.pack(side=RIGHT) 

     self.destinationLabel = Label(frame, text='Edited file') 
     self.destinationLabel.pack(side=LEFT) 
     self.destinationEntry = Entry(frame) 
     self.destinationEntry.pack(side=RIGHT) 

     self.invoiceLabel = Label(frame, text='Invoice data') 
     self.invoiceLabel.pack(side=LEFT) 
     self.invoiceEntry = Entry(frame) 
     self.invoiceEntry.pack(side=RIGHT) 

     self.demoButton = Button(frame, text="Test", command=self.test) 
     self.demoButton.pack(side=LEFT) 
     self.resetButton = Button(frame, text="Reset Fields", bg="red", fg="black", command=self.reset) 
     self.resetButton.pack(side=RIGHT) 

    def test(self): 
     print(self.originalEntry.get()) 
     print(self.namesEntry.get()) 
     print(self.destinationEntry.get()) 
     print(self.invoiceEntry.get()) 

    def reset(self): 
     self.originalEntry.delete(0, END) 
     self.namesEntry.delete(0, END) 
     self.destinationEntry.delete(0, END) 
     self.invoiceEntry.delete(0, END) 

root = Tk() 
root.wm_title("RS") 
b = Information 
root.iconbitmap(r'c:\Users\pbrow\Documents\logoicon.ico') 
root.mainloop() 

は、私はまた、これは大体このプログラムを書いたのは最悪の方法である99%確信している...と私はそれで大丈夫ですよ。私はちょうど正常に機能するように、私は(多くの)後日に最適化を心配することを辞任しました

答えて

2

私の以前の試みは答えません。問題は次のとおりです。

root = Tk() 
root.wm_title("RS") 
b = Information 
root.iconbitmap(r'c:\Users\pbrow\Documents\logoicon.ico') 
root.mainloop() 

あなたがやるべきこと:

b = Information(root) 

は、実際に情報オブジェクトを作成します。

+0

'__init__'メソッドは1つの引数(' self'を越えて)を期待しているので、 'b = Information(root)'にする必要があると確信しています。 – Blckknght

+0

@Blckknghtあなたが正しいです、私は答えを更新しました。ありがとう! –

関連する問題