Kaj počnem Junij 2024

Zaenkrat bomo tu dali več ali manj vse. Ko se bo vsebina širila bomo podforume dodajali.

Kaj počnem Junij 2024

OdgovorNapisal/-a Saso » 07 Jun 2024, 11:28

Nekaj bo.
PoKeys + Python.
Analogne vhode že berem na eno sekundo, ostalo pa še pride.
Nimate dovoljenj za ogled prilog tega prispevka.
_______________
LP
Sašo
Uporabniški avatar
Saso
 
Prispevkov: 1175
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 159 krat
Prejel zahvalo: 252 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Saso » 09 Jun 2024, 10:51

Uf, tole mi je pa vzelo kar cel dan.
Sem moral celo knjižnico prevohat.
Ob zagonu preverim, koliko in katere naprave so priključene na USB in prek LAN.
Potem pa izberem na katero naj se SW priklopi, da ne vpisujem kje v skripti ročno IP-ja ali pa serijske številke če je priključen PoKeys xxU.

Počasi a vstrajno gre naprej.
Nimate dovoljenj za ogled prilog tega prispevka.
_______________
LP
Sašo
Uporabniški avatar
Saso
 
Prispevkov: 1175
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 159 krat
Prejel zahvalo: 252 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a s55m » 10 Jun 2024, 07:20

Saso je napisal/-a:Uf, tole mi je pa vzelo kar cel dan.
Sem moral celo knjižnico prevohat.
Ob zagonu preverim, koliko in katere naprave so priključene na USB in prek LAN.
Potem pa izberem na katero naj se SW priklopi, da ne vpisujem kje v skripti ročno IP-ja ali pa serijske številke če je priključen PoKeys xxU.

Počasi a vstrajno gre naprej.


Descover=Discover , razen ce ni ime produkta.
The human emotional side is what allows believing in something, even when the science is totally wrong.
Uporabniški avatar
s55m
 
Prispevkov: 623
Pridružen: 17 Jan 2015, 20:56
Kraj: Sofia BG
Zahvalil se je: 150 krat
Prejel zahvalo: 215 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 43

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a robi » 14 Jun 2024, 14:32

robi
 
Prispevkov: 1408
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 338 krat
Prejel zahvalo: 522 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a mucek » 14 Jun 2024, 16:02

In??? Koliko mph?
... lahko pa se tudi motim ...
Uporabniški avatar
mucek
 
Prispevkov: 2846
Pridružen: 18 Jan 2015, 20:20
Kraj: Ljubljana
Zahvalil se je: 101 krat
Prejel zahvalo: 1130 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 220

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a peterp » 14 Jun 2024, 16:47

Pospravljam in se čudim stari tehniki ...

motorola_1.jpg

motorola_2.jpg
Nimate dovoljenj za ogled prilog tega prispevka.
peterp
 
Prispevkov: 1057
Pridružen: 23 Feb 2015, 13:52
Kraj: Maribor okolica
Zahvalil se je: 369 krat
Prejel zahvalo: 226 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 230

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 14 Jun 2024, 17:10

Tudi sam še vedno koristim take žičke za kakšna "popravila" tiskanin, ki sem jih zašuštral,...
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 65617
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19161 krat
Prejel zahvalo: 10005 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a robi » 14 Jun 2024, 21:57

mucek je napisal/-a:In??? Koliko mph?


Ni šlo čez 52....
Še ni pravi prop. Pride drug teden nov.
robi
 
Prispevkov: 1408
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 338 krat
Prejel zahvalo: 522 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a peterp » 15 Jun 2024, 19:40

Glede te plošče zgoraj sem zvedel par informacij od avtorja. Tako pravi:
Gre za mojo prototipno ploščo za prvo verzijo komunikacijskega krmilnika, ki sem ga načrtoval v srednjih osemdesetih letih, pred malo manj kot 40 leti.
Ima vgrajen procesor 68k, štiri Zilogove 8530 z dvojnim serijskim portom, FIFO za medprocesno komunikacijo, in naslovne dekodirnike v PALih od Memolithic Memories.
Osem plastno vezje za naslednjo verzijo z 68020 smo načrtovali s paketom, ki je takrat stal okrog 100,000 DEM. Kljub taki pregrešni ceni je podpiral samo 4 bakrene plasti. Končali smo tako
da smo naredili dve plošči in smo signale, ki povezujejo obe, zlepili skupaj "ročno" na ustreznih koordinatah.
Danes bi to bilo neprimerno preprosteje, brez licenčnih stroškov, narediti s KiCadom.

Pa lahko Darko morda združi oba posta.
peterp
 
Prispevkov: 1057
Pridružen: 23 Feb 2015, 13:52
Kraj: Maribor okolica
Zahvalil se je: 369 krat
Prejel zahvalo: 226 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 230

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 18 Jun 2024, 20:48

Malo se igram z arduino:


Saj mogoče bo kdo rekel, pa kaj,... :_think poskusi narediti kaj podobnega!
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 65617
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19161 krat
Prejel zahvalo: 10005 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a valter » 20 Jun 2024, 17:45

VolkD je napisal/-a:Malo se igram z arduino:


Saj mogoče bo kdo rekel, pa kaj,... :_think poskusi narediti kaj podobnega!
Upam da bomo deležni še kode , pa kakšna ponovitev arduino šole bi prav prišla.
valter
 
Prispevkov: 1035
Pridružen: 21 Jan 2015, 10:52
Kraj: Lokev,Predgrad,Boa
Zahvalil se je: 146 krat
Prejel zahvalo: 204 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 22

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Lovro7 » 20 Jun 2024, 19:37

Trenutno je v izdelavi program za iskanje elektronskih komponent v moji bazi podatkov
Posnetek zaslona 2024-06-20 203524.png


..hvala bogu za Chat-gbt :D
Nimate dovoljenj za ogled prilog tega prispevka.
Vse je lahko žarnica, če je dovolj toka. https://lovro7a.github.io/Lovro7-web/html/home_page.htm
Uporabniški avatar
Lovro7
 
Prispevkov: 56
Pridružen: 11 Feb 2024, 20:19
Zahvalil se je: 34 krat
Prejel zahvalo: 16 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 1

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Lovro7 » 20 Jun 2024, 21:25

Nova verzija uporablja excell samo kot bazo podatkov. Vse ostalo je sedaj v enem oknu.
Posnetek zaslona 2024-06-20 221108.png


Noro, kaj vse lahko naredi umetna inteligenca.

Če koga zanima je koda tukaj:
Koda: Izberi vse
import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
from openpyxl import load_workbook

def isci_komponente():
    iskalni_niz = entry_ime.get().strip().upper()
    opis = entry_opis.get().strip().upper()
    kategorija = entry_kategorija.get().strip().upper()
    ohisje = entry_ohisje.get().strip().upper()

    if not any([iskalni_niz, opis, kategorija, ohisje]):
        messagebox.showwarning("Opozorilo", "Vnesite vsaj eno polje za iskanje.")
        return

    global wb, sheet, indeksi_kategorij, najdene_komponente

    wb = load_workbook("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    sheet = wb.active

    naslovi = [cell.value.strip().upper() for cell in next(sheet.iter_rows(min_row=1, max_row=1))]
    indeksi_kategorij = {naslov: indeks for indeks, naslov in enumerate(naslovi)}

    najdene_komponente = {}
    for row in sheet.iter_rows(min_row=2, values_only=True):
        if (
            (iskalni_niz in str(row[indeksi_kategorij.get("OZNAKA", 0)]).strip().upper() or not iskalni_niz) and
            (opis in str(row[indeksi_kategorij.get("OPIS", 1)]).strip().upper() or not opis) and
            (kategorija in str(row[indeksi_kategorij.get("KATEGORIJA", 2)]).strip().upper() or not kategorija) and
            (ohisje in str(row[indeksi_kategorij.get("OHIŠJE", 3)]).strip().upper() or not ohisje)
        ):
            oznaka_komponente = row[indeksi_kategorij.get("OZNAKA", 0)]
            if oznaka_komponente not in najdene_komponente:
                najdene_komponente[oznaka_komponente] = []
            najdene_komponente[oznaka_komponente].append(row)

    if najdene_komponente:
        prikazi_rezultate(najdene_komponente, indeksi_kategorij)
    else:
        messagebox.showinfo("Rezultat iskanja", "Nobena komponenta ni bila najdena.")

def prikazi_rezultate(najdene_komponente, indeksi_kategorij):
    for item in tree.get_children():
        tree.delete(item)

    for oznaka, komponente in najdene_komponente.items():
        for komponenta in komponente:
            tree.insert("", tk.END, values=(
                oznaka,
                komponenta[indeksi_kategorij.get('OPIS', 1)],
                komponenta[indeksi_kategorij.get('OHIŠJE', 3)],
                komponenta[indeksi_kategorij.get('KOLIČINA', 4)],
                komponenta[indeksi_kategorij.get('POLICA', 5)],
                komponenta[indeksi_kategorij.get('PREDAL', 6)],
                komponenta[indeksi_kategorij.get('SEKTOR', 7)]
            ))

def shrani_kolicino():
    selected_item = tree.selection()
    if not selected_item:
        messagebox.showwarning("Opozorilo", "Izberite komponento za urejanje.")
        return

    nova_kolicina = entry_kolicina.get().strip()
    if not nova_kolicina.isdigit():
        messagebox.showwarning("Opozorilo", "Vnesite veljavno količino.")
        return

    selected_text = tree.item(selected_item, 'values')
    oznaka = selected_text[0]

    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        if row[indeksi_kategorij.get("OZNAKA", 0)].value == oznaka:
            row[indeksi_kategorij.get('KOLIČINA', 4)].value = int(nova_kolicina)
            break

    wb.save("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    messagebox.showinfo("Uspeh", "Količina je bila uspešno posodobljena.")

    tree.item(selected_item, values=(
        oznaka,
        selected_text[1],
        selected_text[2],
        nova_kolicina,
        selected_text[4],
        selected_text[5],
        selected_text[6]
    ))

def dodaj_komponento():
    oznaka = entry_dodaj_ime.get().strip().upper()
    opis = entry_dodaj_opis.get().strip().upper()
    kategorija = entry_dodaj_kategorija.get().strip().upper()
    ohisje = entry_dodaj_ohisje.get().strip().upper()
    kolicina = entry_dodaj_kolicina.get().strip()
    polica = entry_dodaj_polica.get().strip().upper()
    predal = entry_dodaj_predal.get().strip().upper()
    sektor = entry_dodaj_sektor.get().strip().upper()

    if not oznaka:
        messagebox.showwarning("Opozorilo", "Vnesite oznako komponente.")
        return
    if not kolicina.isdigit():
        messagebox.showwarning("Opozorilo", "Vnesite veljavno količino.")
        return

    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        if row[indeksi_kategorij.get("OZNAKA", 0)].value == oznaka:
            messagebox.showwarning("Opozorilo", "Komponenta z enako oznako že obstaja.")
            return

    sheet.append([oznaka, opis, kategorija, ohisje, int(kolicina), polica, predal, sektor])
    wb.save("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    messagebox.showinfo("Uspeh", "Komponenta je bila uspešno dodana.")

    entry_dodaj_ime.delete(0, tk.END)
    entry_dodaj_opis.delete(0, tk.END)
    entry_dodaj_kategorija.delete(0, tk.END)
    entry_dodaj_ohisje.delete(0, tk.END)
    entry_dodaj_kolicina.delete(0, tk.END)
    entry_dodaj_polica.delete(0, tk.END)
    entry_dodaj_predal.delete(0, tk.END)
    entry_dodaj_sektor.delete(0, tk.END)

def odstrani_komponento():
    selected_item = tree.selection()
    if not selected_item:
        messagebox.showwarning("Opozorilo", "Izberite komponento za odstranitev.")
        return

    selected_text = tree.item(selected_item, 'values')
    oznaka = selected_text[0]

    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        if row[indeksi_kategorij.get("OZNAKA", 0)].value == oznaka:
            sheet.delete_rows(row[0].row)
            break

    wb.save("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    messagebox.showinfo("Uspeh", "Komponenta je bila uspešno odstranjena.")

    tree.delete(selected_item)

root = tk.Tk()
root.title("Iskanje komponent")

label_ime = tk.Label(root, text="Oznaka:")
label_ime.grid(row=0, column=0)
entry_ime = tk.Entry(root)
entry_ime.grid(row=0, column=1)

label_opis = tk.Label(root, text="Opis:")
label_opis.grid(row=1, column=0)
entry_opis = tk.Entry(root)
entry_opis.grid(row=1, column=1)

label_kategorija = tk.Label(root, text="Kategorija:")
label_kategorija.grid(row=2, column=0)
entry_kategorija = tk.Entry(root)
entry_kategorija.grid(row=2, column=1)

label_ohisje = tk.Label(root, text="Ohišje:")
label_ohisje.grid(row=3, column=0)
entry_ohisje = tk.Entry(root)
entry_ohisje.grid(row=3, column=1)

button_isci = tk.Button(root, text="Išči", command=isci_komponente)
button_isci.grid(row=4, columnspan=2)

tree = ttk.Treeview(root, columns=('Oznaka', 'Opis', 'Ohišje', 'Količina', 'Polica', 'Predal', 'Sektor'), show='headings')
tree.grid(row=5, column=0, columnspan=2)

tree.heading('Oznaka', text='Oznaka')
tree.heading('Opis', text='Opis')
tree.heading('Ohišje', text='Ohišje')
tree.heading('Količina', text='Količina')
tree.heading('Polica', text='Polica')
tree.heading('Predal', text='Predal')
tree.heading('Sektor', text='Sektor')

scrollbar = ttk.Scrollbar(root, orient='vertical', command=tree.yview)
scrollbar.grid(row=5, column=2, sticky='ns')
tree.configure(yscrollcommand=scrollbar.set)

entry_kolicina = tk.Entry(root)
entry_kolicina.grid(row=6, column=1)

button_shrani = tk.Button(root, text="Shrani količino", command=shrani_kolicino)
button_shrani.grid(row=6, column=0)

separator = ttk.Separator(root, orient='horizontal')
separator.grid(row=7, columnspan=2, sticky='ew', pady=10)

label_dodaj_ime = tk.Label(root, text="Dodaj komponento - Oznaka:")
label_dodaj_ime.grid(row=8, column=0)
entry_dodaj_ime = tk.Entry(root)
entry_dodaj_ime.grid(row=8, column=1)

label_dodaj_opis = tk.Label(root, text="Opis:")
label_dodaj_opis.grid(row=9, column=0)
entry_dodaj_opis = tk.Entry(root)
entry_dodaj_opis.grid(row=9, column=1)

label_dodaj_kategorija = tk.Label(root, text="Kategorija:")
label_dodaj_kategorija.grid(row=10, column=0)
entry_dodaj_kategorija = tk.Entry(root)
entry_dodaj_kategorija.grid(row=10, column=1)

label_dodaj_ohisje = tk.Label(root, text="Ohišje:")
label_dodaj_ohisje.grid(row=11, column=0)
entry_dodaj_ohisje = tk.Entry(root)
entry_dodaj_ohisje.grid(row=11, column=1)

label_dodaj_kolicina = tk.Label(root, text="Količina:")
label_dodaj_kolicina.grid(row=12, column=0)
entry_dodaj_kolicina = tk.Entry(root)
entry_dodaj_kolicina.grid(row=12, column=1)

label_dodaj_polica = tk.Label(root, text="Polica:")
label_dodaj_polica.grid(row=13, column=0)
entry_dodaj_polica = tk.Entry(root)
entry_dodaj_polica.grid(row=13, column=1)

label_dodaj_predal = tk.Label(root, text="Predal:")
label_dodaj_predal.grid(row=14, column=0)
entry_dodaj_predal = tk.Entry(root)
entry_dodaj_predal.grid(row=14, column=1)

label_dodaj_sektor = tk.Label(root, text="Sektor:")
label_dodaj_sektor.grid(row=15, column=0)
entry_dodaj_sektor = tk.Entry(root)
entry_dodaj_sektor.grid(row=15, column=1)

button_dodaj = tk.Button(root, text="Dodaj komponento", command=dodaj_komponento)
button_dodaj.grid(row=16, columnspan=2)

button_odstrani = tk.Button(root, text="Odstrani komponento", command=odstrani_komponento)
button_odstrani.grid(row=17, columnspan=2)

root.mainloop()

Nimate dovoljenj za ogled prilog tega prispevka.
Vse je lahko žarnica, če je dovolj toka. https://lovro7a.github.io/Lovro7-web/html/home_page.htm
Uporabniški avatar
Lovro7
 
Prispevkov: 56
Pridružen: 11 Feb 2024, 20:19
Zahvalil se je: 34 krat
Prejel zahvalo: 16 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 1

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Saso » 21 Jun 2024, 11:26

Widim da uporabljaš TK, prešaltaj ASAP na PYQT ali PYSIDE in QTDesigner, preden te mine veselje do izdelave aplikacije ki potrebuje GUI.
_______________
LP
Sašo
Uporabniški avatar
Saso
 
Prispevkov: 1175
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 159 krat
Prejel zahvalo: 252 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a forest70 » 21 Jun 2024, 16:19

groza koliko kode vs sql SELECT * FROM baza WHERE (condition)
No moja stran za material je napisana v php + javascript in za bazo sql. Link
Lovro7 je napisal/-a:Nova verzija uporablja excell samo kot bazo podatkov. Vse ostalo je sedaj v enem oknu.
Posnetek zaslona 2024-06-20 221108.png


Noro, kaj vse lahko naredi umetna inteligenca.

Če koga zanima je koda tukaj:
Koda: Izberi vse
import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
from openpyxl import load_workbook

def isci_komponente():
    iskalni_niz = entry_ime.get().strip().upper()
    opis = entry_opis.get().strip().upper()
    kategorija = entry_kategorija.get().strip().upper()
    ohisje = entry_ohisje.get().strip().upper()

    if not any([iskalni_niz, opis, kategorija, ohisje]):
        messagebox.showwarning("Opozorilo", "Vnesite vsaj eno polje za iskanje.")
        return

    global wb, sheet, indeksi_kategorij, najdene_komponente

    wb = load_workbook("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    sheet = wb.active

    naslovi = [cell.value.strip().upper() for cell in next(sheet.iter_rows(min_row=1, max_row=1))]
    indeksi_kategorij = {naslov: indeks for indeks, naslov in enumerate(naslovi)}

    najdene_komponente = {}
    for row in sheet.iter_rows(min_row=2, values_only=True):
        if (
            (iskalni_niz in str(row[indeksi_kategorij.get("OZNAKA", 0)]).strip().upper() or not iskalni_niz) and
            (opis in str(row[indeksi_kategorij.get("OPIS", 1)]).strip().upper() or not opis) and
            (kategorija in str(row[indeksi_kategorij.get("KATEGORIJA", 2)]).strip().upper() or not kategorija) and
            (ohisje in str(row[indeksi_kategorij.get("OHIŠJE", 3)]).strip().upper() or not ohisje)
        ):
            oznaka_komponente = row[indeksi_kategorij.get("OZNAKA", 0)]
            if oznaka_komponente not in najdene_komponente:
                najdene_komponente[oznaka_komponente] = []
            najdene_komponente[oznaka_komponente].append(row)

    if najdene_komponente:
        prikazi_rezultate(najdene_komponente, indeksi_kategorij)
    else:
        messagebox.showinfo("Rezultat iskanja", "Nobena komponenta ni bila najdena.")

def prikazi_rezultate(najdene_komponente, indeksi_kategorij):
    for item in tree.get_children():
        tree.delete(item)

    for oznaka, komponente in najdene_komponente.items():
        for komponenta in komponente:
            tree.insert("", tk.END, values=(
                oznaka,
                komponenta[indeksi_kategorij.get('OPIS', 1)],
                komponenta[indeksi_kategorij.get('OHIŠJE', 3)],
                komponenta[indeksi_kategorij.get('KOLIČINA', 4)],
                komponenta[indeksi_kategorij.get('POLICA', 5)],
                komponenta[indeksi_kategorij.get('PREDAL', 6)],
                komponenta[indeksi_kategorij.get('SEKTOR', 7)]
            ))

def shrani_kolicino():
    selected_item = tree.selection()
    if not selected_item:
        messagebox.showwarning("Opozorilo", "Izberite komponento za urejanje.")
        return

    nova_kolicina = entry_kolicina.get().strip()
    if not nova_kolicina.isdigit():
        messagebox.showwarning("Opozorilo", "Vnesite veljavno količino.")
        return

    selected_text = tree.item(selected_item, 'values')
    oznaka = selected_text[0]

    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        if row[indeksi_kategorij.get("OZNAKA", 0)].value == oznaka:
            row[indeksi_kategorij.get('KOLIČINA', 4)].value = int(nova_kolicina)
            break

    wb.save("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    messagebox.showinfo("Uspeh", "Količina je bila uspešno posodobljena.")

    tree.item(selected_item, values=(
        oznaka,
        selected_text[1],
        selected_text[2],
        nova_kolicina,
        selected_text[4],
        selected_text[5],
        selected_text[6]
    ))

def dodaj_komponento():
    oznaka = entry_dodaj_ime.get().strip().upper()
    opis = entry_dodaj_opis.get().strip().upper()
    kategorija = entry_dodaj_kategorija.get().strip().upper()
    ohisje = entry_dodaj_ohisje.get().strip().upper()
    kolicina = entry_dodaj_kolicina.get().strip()
    polica = entry_dodaj_polica.get().strip().upper()
    predal = entry_dodaj_predal.get().strip().upper()
    sektor = entry_dodaj_sektor.get().strip().upper()

    if not oznaka:
        messagebox.showwarning("Opozorilo", "Vnesite oznako komponente.")
        return
    if not kolicina.isdigit():
        messagebox.showwarning("Opozorilo", "Vnesite veljavno količino.")
        return

    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        if row[indeksi_kategorij.get("OZNAKA", 0)].value == oznaka:
            messagebox.showwarning("Opozorilo", "Komponenta z enako oznako že obstaja.")
            return

    sheet.append([oznaka, opis, kategorija, ohisje, int(kolicina), polica, predal, sektor])
    wb.save("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    messagebox.showinfo("Uspeh", "Komponenta je bila uspešno dodana.")

    entry_dodaj_ime.delete(0, tk.END)
    entry_dodaj_opis.delete(0, tk.END)
    entry_dodaj_kategorija.delete(0, tk.END)
    entry_dodaj_ohisje.delete(0, tk.END)
    entry_dodaj_kolicina.delete(0, tk.END)
    entry_dodaj_polica.delete(0, tk.END)
    entry_dodaj_predal.delete(0, tk.END)
    entry_dodaj_sektor.delete(0, tk.END)

def odstrani_komponento():
    selected_item = tree.selection()
    if not selected_item:
        messagebox.showwarning("Opozorilo", "Izberite komponento za odstranitev.")
        return

    selected_text = tree.item(selected_item, 'values')
    oznaka = selected_text[0]

    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column):
        if row[indeksi_kategorij.get("OZNAKA", 0)].value == oznaka:
            sheet.delete_rows(row[0].row)
            break

    wb.save("C:\\Users\\Lovro\\Desktop\\komponente EXE\\komponente.xlsx")
    messagebox.showinfo("Uspeh", "Komponenta je bila uspešno odstranjena.")

    tree.delete(selected_item)

root = tk.Tk()
root.title("Iskanje komponent")

label_ime = tk.Label(root, text="Oznaka:")
label_ime.grid(row=0, column=0)
entry_ime = tk.Entry(root)
entry_ime.grid(row=0, column=1)

label_opis = tk.Label(root, text="Opis:")
label_opis.grid(row=1, column=0)
entry_opis = tk.Entry(root)
entry_opis.grid(row=1, column=1)

label_kategorija = tk.Label(root, text="Kategorija:")
label_kategorija.grid(row=2, column=0)
entry_kategorija = tk.Entry(root)
entry_kategorija.grid(row=2, column=1)

label_ohisje = tk.Label(root, text="Ohišje:")
label_ohisje.grid(row=3, column=0)
entry_ohisje = tk.Entry(root)
entry_ohisje.grid(row=3, column=1)

button_isci = tk.Button(root, text="Išči", command=isci_komponente)
button_isci.grid(row=4, columnspan=2)

tree = ttk.Treeview(root, columns=('Oznaka', 'Opis', 'Ohišje', 'Količina', 'Polica', 'Predal', 'Sektor'), show='headings')
tree.grid(row=5, column=0, columnspan=2)

tree.heading('Oznaka', text='Oznaka')
tree.heading('Opis', text='Opis')
tree.heading('Ohišje', text='Ohišje')
tree.heading('Količina', text='Količina')
tree.heading('Polica', text='Polica')
tree.heading('Predal', text='Predal')
tree.heading('Sektor', text='Sektor')

scrollbar = ttk.Scrollbar(root, orient='vertical', command=tree.yview)
scrollbar.grid(row=5, column=2, sticky='ns')
tree.configure(yscrollcommand=scrollbar.set)

entry_kolicina = tk.Entry(root)
entry_kolicina.grid(row=6, column=1)

button_shrani = tk.Button(root, text="Shrani količino", command=shrani_kolicino)
button_shrani.grid(row=6, column=0)

separator = ttk.Separator(root, orient='horizontal')
separator.grid(row=7, columnspan=2, sticky='ew', pady=10)

label_dodaj_ime = tk.Label(root, text="Dodaj komponento - Oznaka:")
label_dodaj_ime.grid(row=8, column=0)
entry_dodaj_ime = tk.Entry(root)
entry_dodaj_ime.grid(row=8, column=1)

label_dodaj_opis = tk.Label(root, text="Opis:")
label_dodaj_opis.grid(row=9, column=0)
entry_dodaj_opis = tk.Entry(root)
entry_dodaj_opis.grid(row=9, column=1)

label_dodaj_kategorija = tk.Label(root, text="Kategorija:")
label_dodaj_kategorija.grid(row=10, column=0)
entry_dodaj_kategorija = tk.Entry(root)
entry_dodaj_kategorija.grid(row=10, column=1)

label_dodaj_ohisje = tk.Label(root, text="Ohišje:")
label_dodaj_ohisje.grid(row=11, column=0)
entry_dodaj_ohisje = tk.Entry(root)
entry_dodaj_ohisje.grid(row=11, column=1)

label_dodaj_kolicina = tk.Label(root, text="Količina:")
label_dodaj_kolicina.grid(row=12, column=0)
entry_dodaj_kolicina = tk.Entry(root)
entry_dodaj_kolicina.grid(row=12, column=1)

label_dodaj_polica = tk.Label(root, text="Polica:")
label_dodaj_polica.grid(row=13, column=0)
entry_dodaj_polica = tk.Entry(root)
entry_dodaj_polica.grid(row=13, column=1)

label_dodaj_predal = tk.Label(root, text="Predal:")
label_dodaj_predal.grid(row=14, column=0)
entry_dodaj_predal = tk.Entry(root)
entry_dodaj_predal.grid(row=14, column=1)

label_dodaj_sektor = tk.Label(root, text="Sektor:")
label_dodaj_sektor.grid(row=15, column=0)
entry_dodaj_sektor = tk.Entry(root)
entry_dodaj_sektor.grid(row=15, column=1)

button_dodaj = tk.Button(root, text="Dodaj komponento", command=dodaj_komponento)
button_dodaj.grid(row=16, columnspan=2)

button_odstrani = tk.Button(root, text="Odstrani komponento", command=odstrani_komponento)
button_odstrani.grid(row=17, columnspan=2)

root.mainloop()

If you pay in bananas, you got monkeys.
Uporabniški avatar
forest70
 
Prispevkov: 2938
Pridružen: 14 Jan 2015, 00:11
Kraj: Koper
Zahvalil se je: 502 krat
Prejel zahvalo: 694 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 136

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Saso » 21 Jun 2024, 21:15

To je pa tko, če ti Chat piše kodo.

Tole je iz enega od mojih python programov za insert v db:
def insert(self, selected_date, prihod, odhod):
db = sqlite3.connect("dure.db")
cursor = db.cursor()
query = "INSERT INTO delovneure(datum, preihod, odhod) VALUES (?,?,?)"
row = (selected_date, prihod, odhod,)
cursor.execute(query, row)
db.commit()

Za select, delete in update pa tudi ni nič drugače.
_______________
LP
Sašo
Uporabniški avatar
Saso
 
Prispevkov: 1175
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 159 krat
Prejel zahvalo: 252 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Saso » 21 Jun 2024, 21:30

Za vse tole z vso manipulacijo.... ni niti 100 vrstic kode vključno z grafičnim vmesnikom.
Kode za GUI niti ni, saj je ta narejen z designerjem in je GUI.ui datoteka vključena v main.py kjer se ob zagonu naloži s tremi vrsticami kode.
Nimate dovoljenj za ogled prilog tega prispevka.
_______________
LP
Sašo
Uporabniški avatar
Saso
 
Prispevkov: 1175
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 159 krat
Prejel zahvalo: 252 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 53

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 21 Jun 2024, 21:39

forest70 je napisal/-a:No moja stran za material je napisana v php + javascript in za bazo sql. Link

No moja pa v C#. + baza podatkov.
http://material.volkd.si/PREGLED.ASPX

SW je free in ga lahko dobi kdorkoli.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 65617
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19161 krat
Prejel zahvalo: 10005 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a Lovro7 » 21 Jun 2024, 21:41

Saso je napisal/-a:To je pa tko, če ti Chat piše kodo.

Tole je iz enega od mojih python programov za insert v db:
def insert(self, selected_date, prihod, odhod):
db = sqlite3.connect("dure.db")
cursor = db.cursor()
query = "INSERT INTO delovneure(datum, preihod, odhod) VALUES (?,?,?)"
row = (selected_date, prihod, odhod,)
cursor.execute(query, row)
db.commit()

Za select, delete in update pa tudi ni nič drugače.


Bom poizkusil knjižice, ki ste mi jih priporočali v prejšnjem postu.
Chat pa uporabljam, ker ne poznam toliko pyhtona. Znam osnove, večino pa uporabljam C++ in C

Bo pa malo za vajo
Vse je lahko žarnica, če je dovolj toka. https://lovro7a.github.io/Lovro7-web/html/home_page.htm
Uporabniški avatar
Lovro7
 
Prispevkov: 56
Pridružen: 11 Feb 2024, 20:19
Zahvalil se je: 34 krat
Prejel zahvalo: 16 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 1

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 21 Jun 2024, 22:44

Rišem škatlo za projekt Mašun 2024.

skatla.jpg
Nimate dovoljenj za ogled prilog tega prispevka.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 65617
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19161 krat
Prejel zahvalo: 10005 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255


Vrni se na Elektronika

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 4 gostov