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: 1237
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 170 krat
Prejel zahvalo: 273 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 57

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: 1237
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 170 krat
Prejel zahvalo: 273 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 57

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: 672
Pridružen: 17 Jan 2015, 20:56
Kraj: Plovdiv BG
Zahvalil se je: 211 krat
Prejel zahvalo: 249 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 49

Re: Kaj počnem Junij 2024

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

robi
 
Prispevkov: 1599
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 419 krat
Prejel zahvalo: 559 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 56

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: 2974
Pridružen: 18 Jan 2015, 20:20
Kraj: Ljubljana
Zahvalil se je: 104 krat
Prejel zahvalo: 1229 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 238

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: 1101
Pridružen: 23 Feb 2015, 13:52
Kraj: Maribor okolica
Zahvalil se je: 374 krat
Prejel zahvalo: 234 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 238

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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 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: 1599
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 419 krat
Prejel zahvalo: 559 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 56

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: 1101
Pridružen: 23 Feb 2015, 13:52
Kraj: Maribor okolica
Zahvalil se je: 374 krat
Prejel zahvalo: 234 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 238

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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 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: 1118
Pridružen: 21 Jan 2015, 10:52
Kraj: Lokev,Predgrad,VFinica,Boa
Zahvalil se je: 154 krat
Prejel zahvalo: 229 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 24

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. http://lovro7.eu/index.html
Uporabniški avatar
Lovro7
 
Prispevkov: 350
Pridružen: 11 Feb 2024, 20:19
Kraj: Velenje (Šmartno ob Paki)
Zahvalil se je: 130 krat
Prejel zahvalo: 109 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 8

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. http://lovro7.eu/index.html
Uporabniški avatar
Lovro7
 
Prispevkov: 350
Pridružen: 11 Feb 2024, 20:19
Kraj: Velenje (Šmartno ob Paki)
Zahvalil se je: 130 krat
Prejel zahvalo: 109 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 8

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: 1237
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 170 krat
Prejel zahvalo: 273 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 57

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: 3002
Pridružen: 14 Jan 2015, 00:11
Kraj: Koper
Zahvalil se je: 511 krat
Prejel zahvalo: 745 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 141

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: 1237
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 170 krat
Prejel zahvalo: 273 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 57

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: 1237
Pridružen: 18 Jan 2015, 19:41
Kraj: Trbovlje
Zahvalil se je: 170 krat
Prejel zahvalo: 273 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 57

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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 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. http://lovro7.eu/index.html
Uporabniški avatar
Lovro7
 
Prispevkov: 350
Pridružen: 11 Feb 2024, 20:19
Kraj: Velenje (Šmartno ob Paki)
Zahvalil se je: 130 krat
Prejel zahvalo: 109 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 8

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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a S56FPW » 22 Jun 2024, 13:13

http://lea.hamradio.si/~s56fpw/
Uporabniški avatar
S56FPW
 
Prispevkov: 924
Pridružen: 26 Jan 2015, 23:00
Kraj: Ljubljana
Zahvalil se je: 267 krat
Prejel zahvalo: 511 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 99

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a robi » 22 Jun 2024, 14:58

VolkD je napisal/-a:Rišem škatlo za projekt Mašun 2024.

skatla.jpg


Kaj bo to? Zvočnik?
robi
 
Prispevkov: 1599
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 419 krat
Prejel zahvalo: 559 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 56

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 22 Jun 2024, 15:09

robi je napisal/-a:Kaj bo to? Zvočnik?
Drži!
Pa še nekaj elektronike bo v njem.
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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a robi » 22 Jun 2024, 16:56

BT?
robi
 
Prispevkov: 1599
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 419 krat
Prejel zahvalo: 559 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 56

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 22 Jun 2024, 18:29

robi je napisal/-a:BT?
Seveda, pa baterije tudi.
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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a robi » 22 Jun 2024, 22:19

Napiši malo več, če ni skrivnost?
Kake driverje boste dali not, stereo/mono?...bas reflex?
robi
 
Prispevkov: 1599
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 419 krat
Prejel zahvalo: 559 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 56

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a S56FPW » 22 Jun 2024, 22:42

Zadnjič spremenil S56FPW, dne 22 Jun 2024, 23:01, skupaj popravljeno 1 krat.
http://lea.hamradio.si/~s56fpw/
Uporabniški avatar
S56FPW
 
Prispevkov: 924
Pridružen: 26 Jan 2015, 23:00
Kraj: Ljubljana
Zahvalil se je: 267 krat
Prejel zahvalo: 511 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 99

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 22 Jun 2024, 22:59

robi je napisal/-a:Napiši malo več, če ni skrivnost?
Kake driverje boste dali not, stereo/mono?...bas reflex?
Ni skrivnost, a je zaenkrat v fazi preizkušanja. Ni garancije, da bo ostalo tako kot je zamišljeno.
Bo pa zadeva seveda objavljena.
No, na kratko. Zvočnik je samo eden, torej mono. Glede na velikost škatle je bas refleks nuja.
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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 22 Jun 2024, 23:03

IMG_20240622_235914.jpg
IMG_20240622_235929.jpg


Dva taka sta v testiranju.
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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a robi » 23 Jun 2024, 09:52

A to boste sami izmerili TS parametre? Dvomim da se dobijo za take kitajčke , lahko pa se motim?
robi
 
Prispevkov: 1599
Pridružen: 14 Maj 2016, 14:31
Zahvalil se je: 419 krat
Prejel zahvalo: 559 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 56

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a VolkD » 23 Jun 2024, 12:33

Smo že, zdaj je treba samo še videti koliko bo potem drugače. Ampak to bomo polovili z dolžino bas refleks cevi. Pa tudi volumen bo drugačen od izračunanega, saj smo računali za prazno škatlo. Torej brez baterij in brez elektronike.
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: 66483
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 19845 krat
Prejel zahvalo: 10168 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a tilz0R » 23 Jun 2024, 15:42

Lovro7, predlagam:

- UI naredi v QtCreator-ju, uporabi pyside6 (Qt za python)
- Inštaliraj pyside6 preko pip python
- uporabi sqlite za data source, ne Excel
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 2382
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 263 krat
Prejel zahvalo: 763 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a MocnikG » 28 Jun 2024, 10:01

tilz0R je napisal/-a:Lovro7, predlagam:

- UI naredi v QtCreator-ju, uporabi pyside6 (Qt za python)
- Inštaliraj pyside6 preko pip python
- uporabi sqlite za data source, ne Excel


Predlagal bi namesto QT uporabi niceGUI.

LP
*Sent*from*my* iPhone.
*Sent*from*my* Linux.
*Sent*from*my* room.
Uporabniški avatar
MocnikG
 
Prispevkov: 611
Pridružen: 18 Maj 2015, 17:56
Kraj: Koroška - MB - CE
Zahvalil se je: 61 krat
Prejel zahvalo: 116 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 11

Re: Kaj počnem Junij 2024

OdgovorNapisal/-a tilz0R » 28 Jun 2024, 10:14

Zakaj ne bi uporabil free za privat projekte nekaj, kar ima UI, GUI dvp, neomejencommunity, python/C++ support in native windows.linux support?
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 2382
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 263 krat
Prejel zahvalo: 763 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255


Vrni se na Elektronika

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 3 gostov