пакеты tkinter в неправильном окне - PullRequest
0 голосов
/ 27 октября 2018

Я создаю игру Simonsays и разделяю на 3 файла. Файл table.py содержит:

from tkinter import *
import random



class Table:

    def __init__(self, parent):
        self.parent = parent
        self.canvas = Canvas(self.parent, height=400, width=400) #tk.
        self.canvas.pack()
        self.dark = {'r':'darkred', 'g':'darkgreen', 'b':'darkblue', 'y':'darkgoldenrod'}
        self.light = {'r':'red', 'g':'green', 'b':'blue', 'y':'goldenrod'}
        self.squares = {'r':self.canvas.create_rectangle(0, 0, 200, 200,
                                              fill='darkred', outline='darkred'),
                        'g':self.canvas.create_rectangle(200, 0, 400, 200,
                                              fill='darkgreen', outline='darkgreen'),
                        'b':self.canvas.create_rectangle(0, 200, 200, 400,
                                              fill='darkblue', outline='darkblue'),
                        'y':self.canvas.create_rectangle(200, 200, 400, 400,
                                              fill='darkgoldenrod', outline='darkgoldenrod')}

        self.status = Label(text='Good luck!')
        self.status.pack(side=BOTTOM, fill=X)

В файле плеера, в основном, есть несколько методов работы игры. Когда я запускаю файл main_menu (тот, что ниже), все работает без сбоев, кроме одной вещи. Строка состояния, которая является меткой из файла таблицы (которая должна быть в окне игры), упакована в окне main_menu. В чем причина этого? (Я все еще новичок, так что не будь слишком резким, если это глупая ошибка ^ _ ^ и заранее спасибо)

from tkinter import * 
from table import Table
from player import Player

class Window():

    def __init__(self, master):
        self.master = master
        self.master.geometry('300x100')
        self.master.title('Simon says')

        self.label1 = Label(self.master, text = 'Welcome to the simon says game', fg='red').pack()
        self.button1 = Button(self.master, text = 'Start game',fg = 'blue', command =self.start_game).pack()
        self.button2 = Button(self.master, text = 'Quit game',fg = 'blue', command =self.quit_game).pack()

    def start_game(self):
        root2 = Toplevel(self.master)
        table = Table(root2)
        player = Player(table)

    def quit_game(self):
        self.master.destroy()


def main():
    root = Tk()
    my_main_menu= Window(root)
    root.mainloop()

if __name__ == '__main__':
    main()

Дополнительный вопрос: есть ли в tkinter простая функция использовать картинку для фона для главного меню?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...