Forum >> Programmazione Python >> GUI >> tentativo di GUI

Pagina: 1

Messaggio annotato da Daniele aka Palmux :
Questa discussione è stata spostata dalla categoria Principianti.
Ho scritto questo semplice programmmino come inizio per un progetto che ho in mente e soprattutto per rispolverare il mio po' di python che avevo imparato.
ora a parte il fatto che prima importavo tkinter con la minuscola ora vuole Tkinter poi c'è il fatto che non riconosce più il metodo filedialog che ho usato in altri programmi, cmq non funziona, non mi crea alcuna finestra anche se IDLE non mi da nessun errore semplicemente il programma gira ma non si vede niente, qualche aiuto?



Ecco il codice:

from Tkinter import *
##from Tkinter.filedialog import *
import os

class main(Frame):

    def __init__(self, parent=None, savefile=None, choices=None):
        Frame.__init__(self, parent)
        self.root = parent
        self.choiches = choices
        if savefile:
            textvariable = open(savefile, 'r').readlines()
            self.makeframe_1(parent)
            self.makeframe_2(parent, text=textvariable)
            self.makeframe_3(parent, self.choices)
        else:
            textbegin = 'Stai per cominciare'
            choices = ['Comincia', 'Comincia', 'Comincia']
            self.makeframe_1(parent)
            self.makeframe_2(parent, text=textbegin)
            self.makeframe_3(parent, choices)

    def makeframe_1 (self, parent=Frame):
        self.top_left = Frame(parent)
        self.top_left.grid(row=0, column=0)
        Button(self.top_left, text='New Game', command=self.restart, bg='green', padx=80).grid(row=0, column=0)
        Button(self.top_left, text='Load Game', command=self.onload, bg='green', padx=80).grid(row=1, column=0)

    def makeframe_2 (self, parent=Frame, text=None):
        self.top_right = Frame(parent)
        self.top_right.grid(row=0, column=1)
        Label(self.top_right, text=text).grid(row=0, column=0)

    def makeframe_3 (self, parent=Frame, *args):
        self.bottom = Frame(parent)
        self.bottom.grid(row=1, column=0)
        self.choices = args
        for column, txt in enumerate(self.choices):
            Button(self.bottom, text=txt).grid(row=0, column=column)

    def restart (self, parent):
        pass

    def onload (self, parent):
        pass

if __name__=='__main__':
    root = Tk()
    root.title('mygame')
    main(root).pack()
    mainloop()


con queste modifiche al sottoscritto funge:
from tkinter import *
##from Tkinter.filedialog import *
import os

.....
.....
...
if __name__=='__main__':
	root = Tk()
	root.title('mygame')
	main(root) #.pack()
	mainloop()

vedi file allegato.
P.S. provato su linux con python 3.5x
Allegati
si togliendo il .pack() funziona, ho il python 3.4 e 3.6, ma sto usando il 3.4 per questo e in un altro programma con il .pack() funzionava boh...


Pagina: 1



Esegui il login per scrivere una risposta.