Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)
# Το πρόγραμμα αυτό είναι ένα κομπιουτεράκι χωρίς κουμπία  με 
# δυνατότητα γραφικών παραστάσεων σε matplotlib python 
# έχω τη δυνατότητα να χρησιμοποιήσω επίσης τα
# pi, sin, cos, tan, sqrt

# Εισάγω τις βιβλιοθήκες
from tkinter import *
import matplotlib.pyplot as plt
from numpy import linspace, pi, sin, cos, tan, sqrt 

# Ο κώδικας που εκτελείται αφού πιέσουμε enter στο κομπιουτεράκι
def ipologizo(event): 
    try:
        result= str(eval(calc.get())) # υπολογίζει το αποτέλεσμα αυτού που γράψαμε
        label1.config(text=result) # Το τυπώνει στο πλαίσιο αποτελέσματος
        #calc.delete(0,END)#διαγράφει τα πάντα από το entry
    except:
        label1.config(text='Λάθος δεδομένα') 
	
# Ο κώδικας που εκτελείται όταν πατήσουμε το κουμπί graph
def f(event):
    try:
        c=int(a.get())
        d=int(b.get())
        x=linspace(c,d,1000)
        y=eval(graph.get())
        plt.plot(x,y) #κάνει το plot
        plt.show()	# και το εμφανίζει
    except:
        label1.config(text='Ξαναπροσπάθησε')
	
calculator=Tk() # Δημιουργώ το βασικό παράθυρο
calculator.title('ΚΟΜΠΙΟΥΤΕΡΑΚΙ') #Τίτλος
calculator.wm_iconbitmap('calculator.ico') #εικονίδιο

frame1=Frame(calculator) #κάνω ένα frame για το κομπιουτεράκι
frame1.pack(side=TOP) #Το βάζω στο παράθυρο

calc = Entry(frame1, justify=RIGHT) #το στοιχείο για entry για κομπιουτεράκι
calc.focus_set() #του δίνω focus
calc.config(width=40,  font=('courier',18)) #ρυθμίσεις
calc.grid(column=0,padx=10, pady=10) #Το βάζουμε στο frame1

label1=Label(frame1,text='0', relief='sunken', 
bg ='#98FB98', bd=2, font=('arial',16), width=20 ) #Δημιουργούμε 
#την ταμπέλα αποτελέσματος
label1.grid(row=0,column=1, padx=10) #τη βάζουμε στο παράθυρο

calc.bind("<Return>", ipologizo) #δημιουργούμαι το event για το enter

frame2=Frame(calculator) #Δημιουργώ το frame για τις γραφικές
frame2.pack() #Το βάζουμε στο παράθυρο

#Δημιουργώ μια ταμπέλα f(x) =
label_graph=Label(frame2, text='f(x)= ',font=('courier',18), bg='white' ) 
label_graph.pack (side=LEFT, padx=10, pady=10)

graph=Entry(frame2) #Δημιουργώ το entry για τις συναρτήσεις
graph.config(width=20,  font=('courier',18)) #ρυθμίσεις
graph.pack(side=LEFT, padx=10, pady=10) #Το βάζουμε στο frame2

#Δημιουργώ δύο ταμπέλες και 2 μικρά entry για να πάρω 
#τις τιμές του x που θέλω τη γραφική παραστάση
a_label=Label(frame2, text='x από: ',font=('courier',18), bg='white' ) 
a_label.pack (side=LEFT, padx=10, pady=10)
a=Entry(frame2)
a.config(width=5,  font=('courier',18), bg='white')
a.pack(side=LEFT, padx=10, pady=10)

b_label=Label(frame2, text='εώς : ',font=('courier',18), bg='white' ) 
b_label.pack (side=LEFT, padx=10, pady=10)
b=Entry(frame2)
b.config(width=5,  font=('courier',18), bg='white')
b.pack(side=LEFT, padx=10, pady=10)

# Δημιουργώ το κουμπί που καλεί την f
button1=Button(frame2, text='graph', font=('times',14), bg='#EEE8AA' )
button1.pack(side=LEFT, padx=10, pady=10)
button1.bind('<Button-1>', f)

calculator.mainloop() 

Αναλυτικός οδηγός για tkinter http://effbot.org/tkinterbook/tkinter-index.htm#class-reference

post-372633-0-15177800-1460067654_thumb.jpg

Επεξ/σία από k33theod
  • Like 1
Δημοσ.

Το πρόβλημα είναι ότι δεν έχω τα εικονίδια...Μήπως θα μπορούσες να τα βάλεις όλα σε ένα zip;

Και επίσης ο κώδικας που βάζεις όταν τον περνάω σε gedit (που χρωματίζει python3) έχει κενά που πρέπει να βγάλω (με το Shift Tab), αλλά μετά πρέπει να δώσω πάλι με προσοχή τα κενά που θέλουν τα Def και Try

Οπότε βάζε και ένα αντίγραφο σε UTF8 και κατάληξη .py αν μπορείς!

Δημοσ.

Το πρόβλημα είναι ότι δεν έχω τα εικονίδια...Μήπως θα μπορούσες να τα βάλεις όλα σε ένα zip;

Και επίσης ο κώδικας που βάζεις όταν τον περνάω σε gedit (που χρωματίζει python3) έχει κενά που πρέπει να βγάλω (με το Shift Tab), αλλά μετά πρέπει να δώσω πάλι με προσοχή τα κενά που θέλουν τα Def και Try

Οπότε βάζε και ένα αντίγραφο σε UTF8 και κατάληξη .py αν μπορείς!

Είναι ένα εικονίδιο .ico θα το ανεβάσω μετά

Εναλλακτικά μπορείς να κάνεις comment τη γραμμή ή να τη σβήσεις ή να βάλεις ένα δικό σου εικονίδιο.

Με τα ταβ θέλει προσοχή. Εγώ τα έχω νομίζω 4 space 1o intentation 8 space 2o

Δεν ξέρω γιατί σου το βγάζει λάθος. Ίσως κάτι με το copy paste τα άλλαξε.

utf8 είναι default στο notepad++ που χρησιμοποιώ.

Αν στο linux που χρησιμοποιείς τρέχει με κατάληξη .pyw είναι προτιμότερο αλλιώς .py ή ότι θέλεις

Δημοσ.

Στην αντιγραφή που κάνω Firefox linux σε gEdit βάζει σε όλες τις γραμμές κενά, εκεί που είναι η αρίθμηση γραμμών.

Δημοσ.

Θα ανεβάσω και το αρχείο ως συνημμένο και δοκίμασε να το ανοίξεις αν είναι οκ σημαίνει ότι οι αλλαγές γίνονται με το copy paste στον editor του insomnia


Επίσης διόρθωσα λίγο τον κώδικα πάνω έσβησα τις global που δεν χρειάζονται

calculator.ico

tkinter_calc.zip

Δημοσ.

τρέχει χωρίς το εικονίδιο

 

έβαλα και αυτό

calculator.wm_iconbitmap(os.getcwd()+'/calculator.ico') #εικονίδιο

 

με αυτό στην αρχή: import os

 

  File "calc2.pyw", line 42, in <module>
    calculator.wm_iconbitmap(os.getcwd()+'/calculator.ico') #εικονίδιο
  File "/usr/lib/python3.4/tkinter/__init__.py", line 1702, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "/home/person/test/calculator.ico" not defined
 

ενώ: με ls calc*

:~/test$ ls calc*
calc2.pyw  calc2.pyw~  calc.py  calc.py~  calculator.ico
 

 

post-370421-0-53201500-1460116725_thumb.png

  • Like 1
Δημοσ.

@k33theod

 

Είναι καλή ευκαιρία να πειραματιστείς με github (αντί να ανεβάζεις αρχεία, paste τον κώδικα εδώ, κλπ.).

  • Like 1
Δημοσ.

Υπάρχει και αυτό το group που είχε φτιάξει ο defacer για διάφορα. Θα μπορούσες να φτιάξεις και κάτι εδώ αν δε θες να γεμίσεις το δικό σου.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...