Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Βοηθεια σε ασκηση TkInter

Βοηθεια σε ασκηση TkInter 10 Χρόνια 3 Μήνες πριν #2232

  • sofro
  • Το Άβαταρ του/της sofro
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 1
Καλησπερα! Εχω αυτον τον κωδικα:
from random import randint

from Tkinter import *
class ADialog:
def __init__(self, parent):
top = self.top = Toplevel(parent)
Label(top, text="Rows").pack()
self.e = Entry(top)
self.e.pack(padx=15)
Label(top, text="Columns").pack()
self.e1 = Entry(top)
self.e1.pack(padx=15)
b = Button(top, text="OK", command=self.ok)
b.pack(pady=10)
def ok(self):
self.x = self.e.get()
self.y = self.e1.get()
print "Rows are", self.x
print "Columns are", self.y
self.top.destroy()

root = Tk()
root.wm_geometry("400x300+20+40")
message=StringVar()
message.set("Complete the form")
Label(root, textvariable=message).pack(padx=30)
root.update()
dial = ADialog(root)
root.wait_window(dial.top)
message.set("Form completed")
Label(root, text="Got Rows "+ dial.x).pack()
Label(root, text="Got Columns "+ dial.y).pack()
Button(root, text="Done", command=root.destroy).pack()
root.update()

z=int(dial.y)
w=int(dial.x)
a=[[randint(0,10) for i in range(z)] for j in range(w)]
print a
k=0

for k in range(w):
str1=''
for l in range(z):
str1=str1+' '+str(a[k][l])
Label(root, text=str1).pack()



root.mainloop()


που δημιουργει εναν τυχαιο πινακα και πρεπει:
Να τροποποιήσετω τον ανωτέρω κώδικα, ώστε να δημιουργεί δύο τυχαίους πίνακες και να
υπολογίζει το άθροισμα ή τη διαφορά τους με βάση το πάτημα κατάλληλου κουμπιού.
Ειναι ασκηση για την σχολη κ εχω κολλησει αν μπορει καποιος να μ βοηθησει... :)Ευχαριστω
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Βοηθεια σε ασκηση TkInter 10 Χρόνια 3 Μήνες πριν #2234

  • Asotos
  • Το Άβαταρ του/της Asotos
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 22
  • Ληφθείσες Ευχαριστίες 9
Καλησπέρα sofro,

Ποιο ακριβώς είναι το πρόβλημά σου; Δοκίμασες κάτι και δε σου βγήκε;

Επίσης προσπάθησε να βάζεις τον κώδικα μέσα στα κατάλληλα tags για να μπορούμε να τον διαβάσουμε πιο εύκολα. Έτσι όπως τον postαρες δεν φαίνονται καθαρά τα indentations.

from random import randint
from Tkinter import *
 
class ADialog:
    def __init__(self, parent):
        top = self.top = Toplevel(parent)
        Label(top, text="Rows").pack()
        self.e = Entry(top)
        self.e.pack(padx=15)
        Label(top, text="Columns").pack()
        self.e1 = Entry(top)
        self.e1.pack(padx=15)
        b = Button(top, text="OK", command=self.ok)
        b.pack(pady=10)
 
    def ok(self):
        self.x = self.e.get()
        self.y = self.e1.get()
        print "Rows are", self.x
        print "Columns are", self.y
        self.top.destroy()
 
 
root = Tk()
root.wm_geometry("400x300+20+40")
message=StringVar()
message.set("Complete the form")
Label(root, textvariable=message).pack(padx=30)
root.update()
dial = ADialog(root)
root.wait_window(dial.top)
message.set("Form completed")
Label(root, text="Got Rows "+ dial.x).pack()
Label(root, text="Got Columns "+ dial.y).pack()
Button(root, text="Done", command=root.destroy).pack()
root.update()
 
z=int(dial.y)
w=int(dial.x)
a=[[randint(0,10) for i in range(z)] for j in range(w)]
print a
k=0
 
for k in range(w):
    str1=''
for l in range(z):
    str1=str1+' '+str(a[k][l])
    Label(root, text=str1).pack()
 
 
 
root.mainloop()
 


Δε γνωρίζω από Tkinter αλλά γνωρίζω από πίνακες. Αν μας πεις πού έχεις κολλήσει ακριβώς, ίσως να μπορέσω να του ρίξω μια ματιά αύριο...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Βοηθεια σε ασκηση TkInter 10 Χρόνια 3 Μήνες πριν #2241

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Εξήγησε ακριβώς τι θέλεις. όπως αναφέρει ο Asotos, δεν είναι θέμα tkinter αλλά καθαρά προγραμματισμού πινάκων.
Αν θέλεις, δώσε και ένα παράδειγμα.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Βοηθεια σε ασκηση TkInter 10 Χρόνια 3 Μήνες πριν #2245

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Μια λύση (όχι ολοκληρωμένη) είναι η παρακάτω:

root.wait_window(dial.top)
message.set("Form completed")
Label(root, text="Got Arrays " + dial.ar).pack()
Label(root, text="Got Rows "+ dial.x).pack()
Label(root, text="Got Columns "+ dial.y).pack()
Button(root, text="Done", command=root.destroy).pack()
root.update()
 
arr = int(dial.ar) # Πίνακες
z=int(dial.y)
w=int(dial.x)
a = [] # Ορισμός πίνακα που θα περιέχει τους επιμέρους πίνακες.
dict_sinola = {} # Αποθήκευση συνόλων.
 
for i in range(arr): # Εισαγωγή των δεδομένων από κάθε πίνακα.
    p = "P" + str(i+1)
 
    dict_sinola[p] = 0
    a.append([[randint(0,10) for i in range(z)] for j in range(w)])
##print( a)
i = 1
for row in a: # Μετακίνηση μέσα στους πίνακες.
    sinolo_pinaka = 0 # Το Σύνολο Πίνακα.
    print("Πίνακας {0}: ".format(i),row)
    for nums in row:
        sinolo_grammis = 0 # Το σύνολο γραμμής πίνακα αρχικοποίηση, (προσθέτουμε τις στήλες).
        print("\t", nums, end='= ')
        for number in nums:
            sinolo_grammis += number # Το σύνολο γραμμής.
        sinolo_pinaka += sinolo_grammis # Προσθέτουμε τη γραμμή στο σύνολο του πίνακα.
        print("{0:>4}".format(sinolo_grammis))
    print("Σύνολο πίνακα: {0:>4}".format(sinolo_pinaka))
    dict_sinola["P" + str(i)] = sinolo_pinaka
    i += 1
print(dict_sinola)
 
##synolo = 0
##for row in a:
##    yposynolo = 0
##    for i in row:
##        yposynolo += i
##        print("{0:>5}".format(i), end=' ')
##    print("= ", yposynolo)
##    synolo += yposynolo
##print(synolo)    
k=0
for item in a: 
    for k in range(w):
        str1=''
    for l in range(z):
        str1=str1+' '+str(item[k][l])
        Label(root, text=str1).pack()
 
 
 
root.mainloop()

Είναι μια ιδέα που σίγουρα θέλει βελτιώσεις.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.299 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου