Sorgulanan ismin diğer verilerini elde etmek

Merhaba arkadaşlar, ComboBox üzerine Sqlite ile verileri alacağım. Fakat örnek vermek gerekir ise ilk ComboBoxtan “Nickzsche” seçili iken diğer ComboBoxlara o kullanıcıya ait şifre ve mail gibi bilgiler gelecek. Bunu nasıl yapabilirim?

databasecur.execute("SELECT * FROM veritabani WHERE kullaniciAdi = ?", (combobox1.currentText()))

for row in databasecur:
    combobox2.addItem(row[1]) // bilgi 1
    combobox3.addItem(row[2]) // bilgi 2

Bu şekilde yapabilirsiniz. Önce veriler, girilen kullanıcı adına göre sorgulanır, çıkan sonuçlar diğer comboboxlara eklenir.

1 Beğeni

Peki yeni konu açmadan sorayım. Form çalıştığı anda bunları yapmasını nasıl sağlayabilirim? Herhangi bir butona basmadan form yüklenirken gerçekleştirmesini istiyorum.

def bilgileriYukle(self):
     databasecur.execute("SELECT * FROM veritabani WHERE kullaniciAdi = ?", (combobox1.currentText()))

     for row in databasecur:
         combobox2.addItem(row[1]) // bilgi 1
         combobox3.addItem(row[2]) // bilgi 2

bilgileriYukle()
2 Beğeni

Bir sorum daha olacak kusura bakmayın. Sql halledene dek text dosyasından alıyorum verileri. İstediğim tam olarak şu Firmalar isimli ComboBox üzerinde seçtiğim elemanın index değerine diğer kutuların da dönmesi. Bu sayede firmaların şifreleri vs de ekrana dökülecektir. Yani tam olarak istediğim ilk ComboBox üstünde seçilen itemin index değerleri ile diğer ComboBoxların da ayarlanması. C# ile bunu yapmıştım onu da örnek olarak bırakıyorum.
Başlıksız-1
Kodum şu şekilde:

import sys
from PyQt5 import QtWidgets
from PyQt5.QtGui import QIcon
from PyQt5.QtGui import QIcon
from AyGrupOtomasyon import Ui_MainWindow
from selenium import webdriver
import time
import os
from selenium.webdriver.common.keys import Keys
import threading


class MyApp(QtWidgets.QMainWindow):
    def __init__(self):
        super(MyApp, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.btn_Bildirge_2.clicked.connect(self.ButonV2Calistir)
        self.DosyaOku()

    def DosyaOku(self):
        os.chdir("Data")
        dosyaOku = open("sirket.txt", "r", encoding="utf-8")
        for i in dosyaOku:
            self.ui.cb_Firmalar.addItem(i)
        dosyaOku = open("kullanici.txt", "r", encoding="utf-8")
        for i in dosyaOku:
            self.ui.cb_Kullanici.addItem(i)
        dosyaOku = open("kod.txt", "r", encoding="utf-8")
        for i in dosyaOku:
            self.ui.cb_Kod.addItem(i)
        dosyaOku = open("isveren.txt", "r", encoding="utf-8")
        for i in dosyaOku:
            self.ui.cb_Isveren.addItem(i)
        dosyaOku = open("araci.txt", "r", encoding="utf-8")
        for i in dosyaOku:
            self.ui.cb_Araci.addItem(i)
        dosyaOku = open("sistem.txt", "r", encoding="utf-8")
        for i in dosyaOku:
            self.ui.cb_Sistem.addItem(i)
    def ButonV2Calistir(self):
        def ButonV2():
            browser = webdriver.Chrome("chromedriver.exe")
            browser.get("https://ebildirge.sgk.gov.tr/EBildirgeV2")
            var = input()
        ButonV2CalistirThread = threading.Thread(target=ButonV2)
        ButonV2CalistirThread.start()

def app():
    app = QtWidgets.QApplication(sys.argv)
    app.setStyle('Fusion')
    win = MyApp()
    win.show()
    sys.exit(app.exec_())

app()

C# Kodu

KullaniciList.SelectedIndex = SirketList.SelectedIndex;
            kodList.SelectedIndex = SirketList.SelectedIndex;
            sistemList.SelectedIndex = SirketList.SelectedIndex;
            isverenList.SelectedIndex = SirketList.SelectedIndex;
            ListAraci.SelectedIndex = SirketList.SelectedIndex;

Bunun için ComboBox’u bir fonksiyona bağlamalısınız.

ComboBox.currentIndexChanged.connect(fonksiyon)

def fonksiyon(index):
    pass

ComboBox’ta her index değiştiğinde fonksiyon çalışacaktır.
Parametre değeri yeni indeks numarası olacaktır. (Sizin elle girmenize gerek yok.)

Yeni indeks değerine göre diğer ComboBox’ların indeksini de ayarlayabilirsiniz.

1 Beğeni