2016-05-25 3 views
-7

Я пытаюсь сделать графическое окно для своего кода на питоне, но я не знаю, как добавлять кнопки, и я смотрел сайты, и это не было для моего издания (3.2.3) У меня есть код сейчас, что-то не так с этим?Код Tkinter для GUI python

import tkinter 
import tkinter as tk 
root = tk.Tk() 
root.title("Adventure game") 
root.geometry("1820x1000") 
root.mainloop() 
class Window(Tk): 
    def __init__(self, parent): 
     Tk.__init__(self, parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     self.geometry("600x400+30+30") 
     wButton = Button(self, text='start', command = self.OnButtonClick()) 
     wButton.pack() 

     def OnButtonClick(self): 
      top = Toplevel() 
      top.title("title") 
      top.geometry("300x150+30+30") 
      topButton = Button(top, text="OPTION_1", command = self.OnButtonPress()) 
      topButton = Button(top, text="OPTION_2", command = self.OnButtonPress()) 
      topButton.pack() 

      def OnButtonPress(self): 
       top = Toplevel() 
       top.title("title") 
       top.geometry("300x150+30+30") 
       topButton = Button(top, text="OPTION_1", command = self.destroy) 
       bottomButton = Button(top, text="OPTION_2", command = self.destroy) 
       topButton.pack() 
+0

* «Что-то не так с этим?» * - почему вы спрашиваете нас ?! Вы проверили * это? Это работает*? – jonrsharpe

+0

нет, это подразумевает, что ему нужна помощь. – Luke

+1

... что? Тогда в чем ваш вопрос? Пожалуйста, прочитайте [ask] и сократите это до [mcve], который демонстрирует *, какова фактическая проблема *. – jonrsharpe

ответ

2

Отвечая на Ваш вопрос, публикуемую «есть что-то не так с этим?»:

Короче Да, есть.

Во-первых, ваш отступ надеюсь, что не похоже на ваш реальный код, но только в вашем посте.

Во-вторых, способ импорта и использования библиотек tkinter.

  • import tkinter VS import tkinter as tk:

    пожалуйста, используйте либо один из них. не оба.

  • class Window(Tk):

    это должно дать ошибку, как у вас нет доступа к Tk на основе вашего импорта. Либо class Window(tkinter.Tk):, либо class Window(tk.Tk): на основе вашего предыдущего решения.

    те же действия применяются ко всем ссылкам tkinter, которые вы используете внутри своего кода.

Есть ли другой способ решить эту проблему? - Да:

from tkinter import * даст вам доступ к названиям непосредственно, чтобы сделать работу class Window(Tk):.

Почему вы не сказали мне это раньше?

Можно импортировать все из библиотеки в начале. Должен ли это делать? IMHO следует избегать использования слишком большого количества зависимостей, когда это возможно. Зачем? Потому что он делает код более легким и переносимым. Почему я должен импортировать вещи, которые не используются в моем коде?

Внимательно прочитайте документацию по tkinter. Есть, как упоминалось в Martineau, тысячи тысяч примеров «кодовых оснований» вокруг, документация во всех возможных форматах (книги, книги, статьи, онлайн-учебники ...)

Прочтите документацию по python. По крайней мере, когда вы сталкиваетесь с трудностями с определенными частями.

Посмотрите на Q & A перед публикацией новых вопросов. Вопросы, направленные на одну и ту же цель, доступны в десятках, говорящих только для SO.

Некоторые примеры:

Все эти вопросы дают примеры, которые можно использовать, даже если они не имеют один и тот же вопрос в виду. Эти вопросы предоставляют примеры кода, которые вы можете использовать для своего же блага.

+0

Чувство, когда вам нужно ответить на ответ, но вы должны уменьшить вопрос ... –