Affichage des articles dont le libellé est treeview. Afficher tous les articles
Affichage des articles dont le libellé est treeview. Afficher tous les articles

Python And MySQL - Insert Update Delete Search And Display Data On Tkinter TreeView

How To Insert Update Delete And Show Records In TreeView Using Python Tkinter

Python And MySQL - Insert Update Delete Search And Display Data On Tkinter TreeView


In this Python Tkinter CRUD Tutorial With MySQL Database we will see How To:
- insert data in mysql database.
- remove selected record from mysql database.
- edit selected record from mysql database.
- search for a specific record by id.
- display mysql database records in a tkinter treeview.






Project Source Code:

import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
import mysql.connector


connection = mysql.connector.connect(host='localhost', user='root', port='3306',
password='', database='test_py')
c = connection.cursor()

root = Tk()

frame = tk.Frame(root)
frame_btns = tk.Frame(frame)

label_id = tk.Label(frame, text="ID:", font=('verdana',14))
entry_id = tk.Entry(frame, font=('verdana',14))

label_fname = tk.Label(frame, text="First Name:", font=('verdana',14))
entry_fname = tk.Entry(frame, font=('verdana',14))

label_lname = tk.Label(frame, text="Last Name:", font=('verdana',14))
entry_lname = tk.Entry(frame, font=('verdana',14))

label_email = tk.Label(frame, text="Email:", font=('verdana',14))
entry_email = tk.Entry(frame, font=('verdana',14))

label_age = tk.Label(frame, text="Age:", font=('verdana',14))
entry_age = tk.Entry(frame, font=('verdana',14))

button_add = tk.Button(frame_btns, text="Add", font=('verdana',14), bg='green',
fg='#ffffff')
button_edit = tk.Button(frame_btns, text="Edit", font=('verdana',14), bg='blue',
fg='#ffffff')
button_remove = tk.Button(frame_btns, text="Remove", font=('verdana',14), bg='red',
fg='#ffffff')
button_search = tk.Button(frame_btns, text="Search", font=('verdana',14), bg='orange',
fg='#ffffff')

trv = ttk.Treeview(frame, columns=(1,2,3,4,5), height=15, show="headings")
trv.column(1, anchor=CENTER, stretch=NO, width=100)
trv.column(2, anchor=CENTER, stretch=NO, width=100)
trv.column(3, anchor=CENTER, stretch=NO, width=100)
trv.column(4, anchor=CENTER, stretch=NO, width=100)
trv.column(5, anchor=CENTER, stretch=NO, width=100)

trv.heading(1, text="ID")
trv.heading(2, text="First Name")
trv.heading(3, text="Last Name")
trv.heading(4, text="Email")
trv.heading(5, text="Age")

def add():
fname = entry_fname.get().strip() # remove white space
lname = entry_lname.get().strip()
email = entry_email.get().strip()
age = entry_age.get().strip()
vals = (fname,lname,email,age)

if(len(fname) > 0 and len(lname) > 0 and len(email) > 0 and int(age) > 10):
c.execute("INSERT INTO `users_2`(`firstname`, `lastname`, `email`, `age`)
VALUES (%s,%s,%s,%s)", vals)
connection.commit()
messagebox.showinfo('Add','User Info Has Been Added')
displayUsers()
else:
messagebox.showwarning('Add','Incorrrect Data')


def edit():
user_id = entry_id.get().strip()
fname = entry_fname.get().strip()
lname = entry_lname.get().strip()
email = entry_email.get().strip()
age = entry_age.get().strip()
if(len(fname) > 0 and len(lname) > 0 and len(email) > 0 and int(age) > 10):
vals = (fname,lname,email,age,user_id)
c.execute("UPDATE `users_2` SET `firstname`=%s,`lastname`=%s,`email`=%s,
`age`=%s WHERE `id`=%s", vals)
connection.commit()
messagebox.showinfo('Edit','User Info Has Been Edited')
displayUsers()
else:
messagebox.showwarning('Edit','Incorrrect Data')

def remove():
user_id = entry_id.get().strip()
c.execute("DELETE FROM `users_2` WHERE `id` = " + user_id)
connection.commit()
messagebox.showinfo('Delete','User Info Has Been Deleted')
displayUsers()

def search():
user_id = entry_id.get().strip()
c.execute("SELECT * FROM `users_2` WHERE `id` = " + user_id)
user = c.fetchone()
# clear fields
entry_fname.delete(0, END)
entry_lname.delete(0, END)
entry_email.delete(0, END)
entry_age.delete(0, END)
if user:
# display data
entry_fname.insert(0, user[1])
entry_lname.insert(0, user[2])
entry_email.insert(0, user[3])
entry_age.insert(0, user[4])
else:
messagebox.showwarning('User','No User Found')




def displayUsers():
# clear treeview
for row in trv.get_children():
trv.delete(row)
# populate treeview
c.execute("SELECT * FROM `users_2`")
users = c.fetchall()

for user in users:
trv.insert('', END, values=user)



button_add['command'] = add
button_edit['command'] = edit
button_remove['command'] = remove
button_search['command'] = search

displayUsers()

label_id.grid(row=0, column=0, sticky='e')
entry_id.grid(row=0, column=1)

label_fname.grid(row=1, column=0, sticky='e')
entry_fname.grid(row=1, column=1)

label_lname.grid(row=2, column=0, sticky='e')
entry_lname.grid(row=2, column=1)

label_email.grid(row=3, column=0, sticky='e')
entry_email.grid(row=3, column=1)

label_age.grid(row=4, column=0, sticky='e')
entry_age.grid(row=4, column=1)

frame_btns.grid(row=5, column=0, columnspan=2)
button_add.grid(row=0, column=0, padx=10, pady=10)
button_edit.grid(row=0, column=1, padx=10, pady=10)
button_remove.grid(row=0, column=2, padx=10, pady=10)
button_search.grid(row=0, column=3, padx=10, pady=10)


trv.grid(row=0, column=3, rowspan=5, padx=10, pady=10)

frame.grid(row=0, column=0)

root.mainloop()


///////////////OUTPUT:


Python Tkinter And MySQL - Insert Update Delete Search And Display

Python Tkinter And MySQL - Insert Update Delete Search And Display Records
Python Tkinter Insert Button To MySQL

Python Tkinter And MySQL - Insert Update Delete Search And Show Records
Python Insert Button To MySQL 2



if you want the source code click on the download button below













PYTHON - How To Add Delete And Update TreeView Row Using TextFields In Python Tkinter

Python - How To Insert Remove And Edit TreeView Row Using TextBoxes In Python Tkinter

Add Delete And Update TreeView Row In Python Tkinter


In this Python Tkinter Tutorial we will see How to:
- add a row to Trreview from TextFields .
- delete selected item from Trreview .
- get selected row values from Trreview to Textboxes .
- update a Trreview row using TextFields .





Project Source Code:


import tkinter as tk
from tkinter import *
from tkinter import ttk


root = Tk()
frame = tk.Frame(root, bg='#3498db')
frame_btns = tk.Frame(frame, bg='#3498db')

data = [
[1,"AAA","BBB","ab@mail.com",17],
[3,"EEE","FFF","ef@mail.com",91],
[4,"GGG","HHH","gh@mail.com",47],
[7,"MMM","NNN","mn@mail.com",25],
[8,"PPP","QQQ","pq@mail.com",43],
[9,"RRR","SSS","rs@mail.com",94],
]

label_id = tk.Label(frame, text='ID:', font=('verdana',14), bg='#3498db')
entry_id = tk.Entry(frame, font=('verdana',14))

label_fname = tk.Label(frame, text='First Name:', font=('verdana',14), bg='#3498db')
entry_fname = tk.Entry(frame, font=('verdana',14))

label_lname = tk.Label(frame, text='Last Name:', font=('verdana',14), bg='#3498db')
entry_lname = tk.Entry(frame, font=('verdana',14))

label_email = tk.Label(frame, text='Email:', font=('verdana',14), bg='#3498db')
entry_email = tk.Entry(frame, font=('verdana',14))

label_age = tk.Label(frame, text='Age:', font=('verdana',14), bg='#3498db')
entry_age = tk.Entry(frame, font=('verdana',14))

btn_add = tk.Button(frame_btns, text='Add', font=('verdana',14), bg='#f39c12',
fg='#ffffff', width=10)
btn_edit = tk.Button(frame_btns, text='Edit', font=('verdana',14), bg='#f39c12',
fg='#ffffff', width=10)
btn_remove = tk.Button(frame_btns, text='Remove', font=('verdana',14), bg='#f39c12',
fg='#ffffff', width=10)

trv = ttk.Treeview(frame, columns=(1,2,3,4,5), show='headings')
trv.column(1, anchor='center', width=100)
trv.column(2, anchor='center', width=100)
trv.column(3, anchor='center', width=100)
trv.column(4, anchor='center', width=100)
trv.column(5, anchor='center', width=100)

trv.heading(1, text='ID')
trv.heading(2, text='First Name')
trv.heading(3, text='Last Name')
trv.heading(4, text='Email')
trv.heading(5, text='Age')

# create a function to display data in treeview
def displayData():
for row in data:
trv.insert('',END, values=row)


displayData()


# create a function to display the selected row from treeview
def displaySelectedItem(a):

# clear entries
entry_id.delete(0,END)
entry_fname.delete(0,END)
entry_lname.delete(0,END)
entry_email.delete(0,END)
entry_age.delete(0,END)

selectedItem = trv.selection()[0]
entry_id.insert(0, trv.item(selectedItem)['values'][0])
entry_fname.insert(0, trv.item(selectedItem)['values'][1])
entry_lname.insert(0, trv.item(selectedItem)['values'][2])
entry_email.insert(0, trv.item(selectedItem)['values'][3])
entry_age.insert(0, trv.item(selectedItem)['values'][4])


trv.bind("<<TreeviewSelect>>", displaySelectedItem)


def add():
user_id = entry_id.get()
fname = entry_fname.get()
lname = entry_lname.get()
email = entry_email.get()
age = entry_age.get()

vals = (user_id, fname, lname, email, age)
trv.insert('', END, values=vals)


def edit():
user_id = entry_id.get()
fname = entry_fname.get()
lname = entry_lname.get()
email = entry_email.get()
age = entry_age.get()

selectedItem = trv.selection()[0]
vals = (user_id, fname, lname, email, age)
trv.item(selectedItem, values=vals)


def remove():
try:
selectedItem = trv.selection()[0]
trv.delete(selectedItem)
except:
print('Error')


btn_add['command'] = add
btn_edit['command'] = edit
btn_remove['command'] = remove



frame.grid(row=0, column=0)

label_id.grid(row=0, column=0, sticky='e')
entry_id.grid(row=0, column=1)

trv.grid(row=0, column=2, rowspan=5, padx=10, pady=10)

label_fname.grid(row=1, column=0, sticky='e')
entry_fname.grid(row=1, column=1)

label_lname.grid(row=2, column=0, sticky='e')
entry_lname.grid(row=2, column=1)

label_email.grid(row=3, column=0, sticky='e')
entry_email.grid(row=3, column=1)

label_age.grid(row=4, column=0, sticky='e')
entry_age.grid(row=4, column=1)

frame_btns.grid(row=5, column=0, columnspan=2)
btn_add.grid(row=0, column=0, padx=10, pady=10)
btn_edit.grid(row=0, column=1, padx=10, pady=10)
btn_remove.grid(row=0, column=2, padx=10, pady=10)



root.mainloop()


////// OUTPUT : 


Insert Remove And Edit TreeView Row Using TextBoxes In Python Tkinter










PYTHON - How To Get TreeView Column Max, Min, Sum, Average Value In Python Tkinter

Python - How To Get The Sum, Max, Min, Avg Value Of A TreeView Column Using Python Tkinter


TreeView Column Max, Min, Sum, Average Value In Python Tkinter


In This Python Tutorial  We Will See How To Get The Average, Max, Min, Sum Value From Specific Treeview Column And Display Them In TextBoxes Using Python Programming Language.


Project Source Code:

import tkinter as tk
from tkinter import *
from tkinter import ttk


root = Tk()
root.title("MAX-MIN-SUM-AVG")

frame_container = tk.Frame(root, padx=10, pady=10, bg='#badc58')
frame_fields = tk.Frame(frame_container, bg='#badc58')

# create treeview
trv = ttk.Treeview(frame_container, columns=(1,2,3,4), show='headings')

trv.column(1, anchor='center', width=100)
trv.column(2, anchor='center', width=100)
trv.column(3, anchor='center', width=100)
trv.column(4, anchor='center', width=100)

trv.heading(1, text='ID')
trv.heading(2, text='Name')
trv.heading(3, text='Quantity')
trv.heading(4, text='Price')

# add items to the treeview
trv.insert("",'end', iid=1, values=(1,"Product 1",100, 10))
trv.insert("",'end', iid=2, values=(2,"Product 2",200, 20))
trv.insert("",'end', iid=3, values=(3,"Product 3",300, 30))
trv.insert("",'end', iid=4, values=(4,"Product 4",400, 400))
trv.insert("",'end', iid=5, values=(5,"Product 5",500, 50))
trv.insert("",'end', iid=6, values=(6,"Product 6",600, 60))

# sum value
sum_lbl = tk.Label(frame_fields, text='Sum:', font=('Verdana',14), bg='#badc58')
sum_entry = tk.Entry(frame_fields, font=('Verdana',14))

# average value
avg_lbl = tk.Label(frame_fields, text='Average:', font=('Verdana',14), bg='#badc58')
avg_entry = tk.Entry(frame_fields, font=('Verdana',14))

# minimum value
min_lbl = tk.Label(frame_fields, text='Min:', font=('Verdana',14), bg='#badc58')
min_entry = tk.Entry(frame_fields, font=('Verdana',14))

# maximum value
max_lbl = tk.Label(frame_fields, text='Max:', font=('Verdana',14), bg='#badc58')
max_entry = tk.Entry(frame_fields, font=('Verdana',14))

sum_lbl.grid(row=0, column=0, padx=10, pady=10, sticky='e')
sum_entry.grid(row=0, column=1)

avg_lbl.grid(row=1, column=0, padx=10, pady=10, sticky='e')
avg_entry.grid(row=1, column=1)

min_lbl.grid(row=2, column=0, padx=10, pady=10, sticky='e')
min_entry.grid(row=2, column=1)

max_lbl.grid(row=3, column=0, padx=10, pady=10, sticky='e')
max_entry.grid(row=3, column=1)


# function to display the sum value
def getSum(item=""):
val = 0
for row in trv.get_children(item):
#print(trv.item(row)["values"][3])# print price
val = val + trv.item(row)["values"][3]
print(val)
sum_entry.insert(0,val)


# function to display the average value
def getAvg(item=""):
val = 0
for row in trv.get_children(item):
#print(trv.item(row)["values"][3])# print price
val = val + trv.item(row)["values"][3]

val = val/len(trv.get_children())
avg_entry.insert(0,val)


# function to display the minimum value
def getMin():
val = trv.item("1")["values"][3] # get the first value
for row in trv.get_children():
#print(trv.item(row)["values"][3])# print price
if val > trv.item(row)["values"][3]:
val = trv.item(row)["values"][3]
min_entry.insert(0,val)


# function to display the maximum value
def getMax():
val = trv.item("1")["values"][3] # get the first value
for row in trv.get_children():
#print(trv.item(row)["values"][3])# print price
if val < trv.item(row)["values"][3]:
val = trv.item(row)["values"][3]
max_entry.insert(0,val)



getSum()
getAvg()
getMin()
getMax()

trv.pack()
frame_container.pack()
frame_fields.pack()

root.mainloop()

      
///////////////OUTPUT:

Sum, Max, Min, Avg Value Of A TreeView Column Using Python Tkinter



Download the .py file

download the source code







VB.Net Transfer TreeView Nodes To DataGridView

How To Set TreeView Nodes Values Into DataGridView Rows Using Visual Basic .Net

Transfer TreeView Nodes To DataGridView Using VB.Net

In this VB.NET Tutorial we will see How To Get TreeView Nodes Data And Set It Into DataGridView Rows Using For Loop On Button Click Event In Visual Basic.Net  Programming Language And Visual  Studio Editor.




Project Source Code:


Public Class TreeView_To_Datagridview

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' go through all nodes
        For i As Integer = 0 To TreeView1.Nodes.Count - 1 Step +1

            ' create a new node
            Dim node As New TreeNode()

            ' set the created node equal to the current one
            node = TreeView1.Nodes(i)
           
            ' create a row
            Dim row(node.Nodes.Count) As Object

            ' add values from node to the row
            For j As Integer = 0 To node.Nodes.Count - 1 Step +1

                row(j) = node.Nodes(j).Text

            Next j
            
            ' add row to the datagridview
            DataGridView1.Rows.Add(row)

        Next i

    End Sub
End Class


OutPut:

TreeView To DataGridView In VB.Net