ノートブックの各タブを個別のエンティティとして作成するにはどうすればよいですか?

Taimorr Mughal:

path_entryフィールドに値を設定しようとしています。これがコードです:

from tkinter import filedialog, ttk,scrolledtext
import tkinter as tk


class GUI(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("SC")
        self.geometry('375x600')
        self.resizable(width=False, height=False)
        

        names = ['Tab 1', 'Tab 2', 'Tab 3', 'Tab 4']
        self.nb = self.create_notebook(names)
        self.menu = self.create_menus()

        self.mainloop()

    def create_notebook(self, names):
        nb = MyNotebook(self, names)
        self.file_path = tk.StringVar()
        nb.pack()

       

        def path_label(parent):
            label = ttk.Label(parent, text="Person file: ").grid(column=0, row=2, padx=10, pady=10)
            return label

        def path_entry(parent):
            
            path = ttk.Entry(parent, width=30, textvariable=self.file_path).grid(column=1, row=2)
            return path

        def browse_button(parent):
            browse = ttk.Button(parent, text="Browse", command=read_csv, width=30).grid(column=1, row=3, padx=10,
                                                                                        pady=10)
            return browse

        def newapp_label(parent):
            label = ttk.Label(parent, text="Press to : ").grid(column=0, row=4, padx=10, pady=10)
            return label

        def newapp_button(parent):
            newapp = ttk.Button(parent, text="Run New Application", width=30).grid(column=1, row=4, padx=10, pady=10)
            return newapp

        def read_csv():
            file = filedialog.askopenfilename()
            if file != None:
                self.file_path.set(file)

        
        # Add some labels to each tab
        tabs = [nb.tabs['Tab 1'],nb.tabs['Tab 2'], nb.tabs['Tab 3'], nb.tabs['Tab 4']]
        for tab in tabs:
            path_label(tab)
            path_entry(tab)
            browse_button(tab)
            newapp_label(tab)
            newapp_button(tab)
        return nb

    
    def create_menus(self):
        menu = tk.Menu(self, tearoff=False)
        self.config(menu=menu)
        subMenu = tk.Menu(menu, tearoff=False)
        menu.add_cascade(label="File", menu=subMenu)
        subMenu.add_separator()
        subMenu.add_command(label='Exit', command=self.destroy)
        return menu


class MyNotebook(ttk.Notebook):
    ''' A customised Notebook that remembers its tabs in a dictionary '''

    def __init__(self, master, names):
        super().__init__(master, width=390, height=470)

        # Create tabs & save them by name in a dictionary
        self.tabs = {}
        for name in names:
            self.tabs[name] = tab = ttk.Frame(self)
            self.add(tab, text=name)


GUI()

したがって、参照ボタンをクリックすると、そのタブの特定のエントリにファイルパスをロードするウィンドウが開きます。しかし、各タブを個別のエンティティとして機能させたいのですが、他のすべてのタブの[エントリ]フィールドに同じファイル/値があることに気付きました。つまり、4つのタブごとに4つの異なるファイルのファイルパスをロードします。どうしてそれが可能か

acw1668:

これはStringVar self.file_path、すべてのエントリに同じもの使用したためですStringVar代わりに、エントリごとに個別使用する必要があります

from tkinter.scrolledtext import ScrolledText
...

def create_notebook(self, names):
    nb = MyNotebook(self, names)
    #self.file_path = tk.StringVar()
    nb.pack()

    def path_label(parent):
        label = ttk.Label(parent, text="Person file: ")
        label.grid(column=0, row=2, padx=10, pady=10)
        return label

    def path_entry(parent):
        path = ttk.Entry(parent, width=30, textvariable=parent.file_path)
        path.grid(column=1, row=2)
        return path

    def browse_button(parent):
        browse = ttk.Button(parent, text="Browse", command=lambda:read_csv(parent), width=30)
        browse.grid(column=1, row=3, padx=10, pady=10)
        return browse

    def newapp_label(parent):
        label = ttk.Label(parent, text="Press to : ")
        label.grid(column=0, row=4, padx=10, pady=10)
        return label

    def newapp_button(parent):
        newapp = ttk.Button(parent, text="Run New Application", width=30)
        newapp.grid(column=1, row=4, padx=10, pady=10)
        return newapp

    def add_scrolledtext(parent):
        text = ScrolledText(parent, width=40, height=20)
        text.grid(column=0, row=5, columnspan=2, padx=10, pady=10, sticky='nsew')
        return text

    def read_csv(parent):
        file = filedialog.askopenfilename()
        if file:
            parent.file_path.set(file)
    
    # Add some labels to each tab
    for name in names:
        tab = nb.tabs[name]
        # create a StringVar for this tab
        tab.file_path = tk.StringVar()
        path_label(tab)
        path_entry(tab)
        browse_button(tab)
        newapp_label(tab)
        newapp_button(tab)
        add_scrolledtext(tab)

    return nb

また、あなたのような何かを書くべきではありませんlabel = ttk.Label(...).grid(...)ので、labelその結果でgrid(...)あるがNone2つの関数を2つのステートメントに分離します。

label = ttk.Label(...)
label.grid(...)

更新:ScrolledText各タブに追加されました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

エンティティのエンティティキーをデータストア(ノードJS)内の別のエンティティのプロパティとして割り当てるにはどうすればよいですか?

分類Dev

Leafletを使用してRでGTFSデータのインタラクティブプロットを作成するにはどうすればよいですか?

分類Dev

ES6テンプレートリテラル構文とバックティックを使用して、「結果」オブジェクトの失敗配列の各エントリを表示するにはどうすればよいですか。

分類Dev

他のカスタムディレクティブの要素タグを別のカスタムディレクティブのテンプレートとして使用するにはどうすればよいですか?

分類Dev

AngularJS:ディレクティブを別のディレクティブとしてコンパイルするにはどうすればよいですか?

分類Dev

A-Frame for VRを使用して各エンティティの上にインジケーターを作成するにはどうすればよいですか?

分類Dev

root以外の別のユーザーとしてインタラクティブシェルを取得するにはどうすればよいですか?

分類Dev

root以外の別のユーザーとしてインタラクティブシェルを取得するにはどうすればよいですか?

分類Dev

テーブル列をループして別のテーブルをフィルタリングし、フィルタリングされた各テーブルを電子メールで送信するにはどうすればよいですか?

分類Dev

vueを使用してExcelアドインを作成する場合。Excelノートブックのデータに基づいてプロパティを計算するにはどうすればよいですか?

分類Dev

Flutterブロックを使用して、ユーザーが入力したときにその値を別のウィジェットに更新するテキストフィールドを作成するにはどうすればよいですか?

分類Dev

属性のHTMLをトークンとしてディレクティブテンプレートに含めるにはどうすればよいですか

分類Dev

クリックした子に対してアクティブに設定しながら、各子コンポーネントのアクティブクラスの設定を解除するにはどうすればよいですか?

分類Dev

ブートストラップの別のページから動的タブをアクティブ化するにはどうすればよいですか?

分類Dev

別のエンティティ(NestJS)内にエンティティを追加して作成するにはどうすればよいですか?

分類Dev

1つのテーブルに対して複数のエンティティをマップするにはどうすればよいですか?

分類Dev

複数のトランザクションテーブルを統合して、各テーブルがステータスを表すクエリを作成するにはどうすればよいですか?

分類Dev

WebGLを使用してJavaScriptでインタラクティブパノラマビューアを作成するにはどうすればよいですか?

分類Dev

SPARQLクエリを使用してグラフデータ内のさまざまなタイプのノードおよびエッジエンティティを一覧表示してカウントするにはどうすればよいですか?

分類Dev

エンティティフレームワークを使用して、単一のトランザクションで子テーブルと親テーブルの両方を更新するにはどうすればよいですか?

分類Dev

Pythonで、各アイテムが異なる個別のキー値ペアを持つオブジェクト/ディクテーションのリストで最小のキー値ペアを取得するにはどうすればよいですか?

分類Dev

Androidでアクティビティを個別のタスクとして実行するにはどうすればよいですか?

分類Dev

dbオブジェクトからすべてのエンティティタイプを一覧表示するにはどうすればよいですか?

分類Dev

非エンティティテーブルを使用してSpring Bootでカスタム@Queryを作成するにはどうすればよいですか?

分類Dev

キーボードショートカットを使用して、現在アクティブなウィンドウをあるモニターから別のモニターに移動するにはどうすればよいですか?

分類Dev

キーボードショートカットを使用して、現在アクティブなウィンドウをあるモニターから別のモニターに移動するにはどうすればよいですか?

分類Dev

春のブートJPAで、エンティティ表現が別のエンティティへの外部キーの関連付けを持つオブジェクトを適切にPOSTするにはどうすればよいですか?

分類Dev

jupyterノートブックのbokehを使用して、複数選択ウィジェットをデータテーブルにリンクするにはどうすればよいですか?

分類Dev

ユーザーが別のテーマを選択したときに、特定のディレクティブですべてのコンポーネントの色を変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    エンティティのエンティティキーをデータストア(ノードJS)内の別のエンティティのプロパティとして割り当てるにはどうすればよいですか?

  2. 2

    Leafletを使用してRでGTFSデータのインタラクティブプロットを作成するにはどうすればよいですか?

  3. 3

    ES6テンプレートリテラル構文とバックティックを使用して、「結果」オブジェクトの失敗配列の各エントリを表示するにはどうすればよいですか。

  4. 4

    他のカスタムディレクティブの要素タグを別のカスタムディレクティブのテンプレートとして使用するにはどうすればよいですか?

  5. 5

    AngularJS:ディレクティブを別のディレクティブとしてコンパイルするにはどうすればよいですか?

  6. 6

    A-Frame for VRを使用して各エンティティの上にインジケーターを作成するにはどうすればよいですか?

  7. 7

    root以外の別のユーザーとしてインタラクティブシェルを取得するにはどうすればよいですか?

  8. 8

    root以外の別のユーザーとしてインタラクティブシェルを取得するにはどうすればよいですか?

  9. 9

    テーブル列をループして別のテーブルをフィルタリングし、フィルタリングされた各テーブルを電子メールで送信するにはどうすればよいですか?

  10. 10

    vueを使用してExcelアドインを作成する場合。Excelノートブックのデータに基づいてプロパティを計算するにはどうすればよいですか?

  11. 11

    Flutterブロックを使用して、ユーザーが入力したときにその値を別のウィジェットに更新するテキストフィールドを作成するにはどうすればよいですか?

  12. 12

    属性のHTMLをトークンとしてディレクティブテンプレートに含めるにはどうすればよいですか

  13. 13

    クリックした子に対してアクティブに設定しながら、各子コンポーネントのアクティブクラスの設定を解除するにはどうすればよいですか?

  14. 14

    ブートストラップの別のページから動的タブをアクティブ化するにはどうすればよいですか?

  15. 15

    別のエンティティ(NestJS)内にエンティティを追加して作成するにはどうすればよいですか?

  16. 16

    1つのテーブルに対して複数のエンティティをマップするにはどうすればよいですか?

  17. 17

    複数のトランザクションテーブルを統合して、各テーブルがステータスを表すクエリを作成するにはどうすればよいですか?

  18. 18

    WebGLを使用してJavaScriptでインタラクティブパノラマビューアを作成するにはどうすればよいですか?

  19. 19

    SPARQLクエリを使用してグラフデータ内のさまざまなタイプのノードおよびエッジエンティティを一覧表示してカウントするにはどうすればよいですか?

  20. 20

    エンティティフレームワークを使用して、単一のトランザクションで子テーブルと親テーブルの両方を更新するにはどうすればよいですか?

  21. 21

    Pythonで、各アイテムが異なる個別のキー値ペアを持つオブジェクト/ディクテーションのリストで最小のキー値ペアを取得するにはどうすればよいですか?

  22. 22

    Androidでアクティビティを個別のタスクとして実行するにはどうすればよいですか?

  23. 23

    dbオブジェクトからすべてのエンティティタイプを一覧表示するにはどうすればよいですか?

  24. 24

    非エンティティテーブルを使用してSpring Bootでカスタム@Queryを作成するにはどうすればよいですか?

  25. 25

    キーボードショートカットを使用して、現在アクティブなウィンドウをあるモニターから別のモニターに移動するにはどうすればよいですか?

  26. 26

    キーボードショートカットを使用して、現在アクティブなウィンドウをあるモニターから別のモニターに移動するにはどうすればよいですか?

  27. 27

    春のブートJPAで、エンティティ表現が別のエンティティへの外部キーの関連付けを持つオブジェクトを適切にPOSTするにはどうすればよいですか?

  28. 28

    jupyterノートブックのbokehを使用して、複数選択ウィジェットをデータテーブルにリンクするにはどうすればよいですか?

  29. 29

    ユーザーが別のテーマを選択したときに、特定のディレクティブですべてのコンポーネントの色を変更するにはどうすればよいですか?

ホットタグ

アーカイブ