PyQt5 Combobox hakkında yardım dilenecektim :)

Başlatan aaltay90, 23 Nisan 2021 - 14:04:23

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

aaltay90

Arkadaşlar combobox ile seçilen ürün türünden sonra o türe bağlı diğer combobox ta marka, markayı seçtikten sonra o markaya bağlı modeller vs, gelsin istiyorum ama 2 gündür beceremedim. (örnekle açıklamak gerekirse web sitelerinde seçilen ülke ülkeden sonra o ülkenin şehirleri daha sonra o şehrin ilçeleri gibi)


Ürün türü fonksiyonundan combobox ile seçilen değeri ürün markası fonksiyonuna atamam gerek.

def Urun_Turu_f():
    urun_turu_sorgula=cursor.execute("SELECT Urun_Turu FROM Urunler").fetchall()
    for i in urun_turu_sorgula:
        ui.Urun_Turu_CB.addItems(i)
Urun_Turu_f()
   
def Urun_Markasi_f():
    urun_markasi_sorgula=cursor.execute("SELECT Marka FROM Urunler WHERE Urun_Turu=?",()).fetchall()
    for i in urun_markasi_sorgula:
        ui.Urun_Turu_CB.addItems(i)
Urun_Markasi_f()

ui.Urun_Turu_CB.currentIndexChanged.connect(Urun_Markasi_f)

serkan38

kodlama konusunda hiç bilgim yok. şöyle bir anlatım mevcut işinize yararsa.

QComboBox ile bir liste kutusu, seçim kutusu veya birleşik giriş kutusu olabilir . Bu parçacığı kullanmak için QComboBox'ı PyQt5.QtWidgets'dan içe aktarın.
Tipik olarak, bir kullanıcının ülke veya sözleşme gibi belirli sayıda öğe arasından seçim yapması gerektiğinde bu widget'ı görürsünüz.
QComboBox
Bir liste kutusu oluşturun
Şu satırlarla bir liste kutusu oluşturabilirsiniz:
combo = QComboBox(self)
combo.addItem("Elma")
AddItem yöntemi, liste kutusuna bir seçenek ekler. Farklı seçeneklerle buna ihtiyaç duyduğunuz kadar çağrı yapabilirsiniz.
Bir liste kutusu değişikliğini bir yöntemle bağlamak için şunu kullanabilirsiniz:
combo.activated[str].connect(self.onChanged)
Misal
Aşağıdaki kod, bir pencereye birleşik giriş kutusu ekler. Birleşik giriş kutusunda sunulan seçeneklerden birini seçtiğinizde, etiket değerleri değişir.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QPushButton

class Example(QMainWindow):
   
    def __init__(self):
        super().__init__()
               
        combo = QComboBox(self)
        combo.addItem("Elma")
        combo.addItem("Armut")
        combo.addItem("Limon")

        combo.move(50, 50)

        self.qlabel = QLabel(self)
        self.qlabel.move(50,16)

        combo.activated[str].connect(self.onChanged)     

        self.setGeometry(50,50,320,200)
        self.setWindowTitle("QLineEdit Example")
        self.show()

    def onChanged(self, text):
        self.qlabel.setText(text)
        self.qlabel.adjustSize()
       
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())




aaltay90

Tekrar merhaba. Şöyle bir şey yaptım (programın farlı daha basit bir bölümü için) esasen işe yarıyor ancak hata veriyor verilen hata sql ile ilgili 1 parametre beklerken 1 den fazla parametre girildi diyor... Print ile bulunanı konsola yazdırıyorum seçtiğim yazı çıkıyor

def Urun_turu_ara():
    ui.Urun_Turu_Ara_CB.clear()
    aranan_tur=cursor.execute("SELECT Urun_Turu FROM Urunler")
    ui.Urun_Turu_Ara_CB.addItem("Seçiniz")
    for i in aranan_tur:
        ui.Urun_Turu_Ara_CB.addItems(i)
    ui.Urun_Turu_Ara_CB.currentIndexChanged.connect(Urun_marka_ara)

def Urun_marka_ara():
    bulunan=ui.Urun_Turu_Ara_CB.currentText()
    print(bulunan)
    ui.Urun_Markasi_Ara_CB.clear()
    aranan_marka=cursor.execute("SELECT Urun_Turu FROM Urunler WHERE Marka=?",(bulunan))     HATAYI VEREN SATIR
    for i in aranan_marka:
        ui.Urun_Markasi_CB.addItems(i)

Urun_turu_ara()

91011

şöyle denesen bir de

   aranan_marka=cursor.execute("SELECT Urun_Turu FROM Urunler WHERE Marka={}".format(bulunan))   

Tanrı konuşmaz, şeytan fısıldar...