Qtablewidget içindeki seçili sutunu tamamını labela text olarak nasıl aktarabilirim?

#-----------MODÜLDAHİLİ---------#
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import*
from mail_arayüz import*

#-------------------------------#

#--------PENCERE OLUŞTURMA------#

uygulama=QApplication(sys.argv) 
anapen=QMainWindow()
dosya=Ui_MainWindow()
dosya.setupUi(anapen)
anapen.show()

#--------BAĞLANTIVE TABLO SQL OLUŞTURMA------#
import sqlite3
global bağlantı
global işlem

bağlantı=sqlite3.connect("arcelik.db")
işlem=bağlantı.cursor()
sorgutable=("CREATE TABLE IF NOT EXISTS ARCELİK(                 \
             Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,   \
             TCno TEXT NOT NULL UNIQUE,                       \
             MüşteriAdı TEXT NOT NULL,                         \
             MüşteriSoyadı TEXT NOT NULL,                      \
             TelNO TEXT NOT NULL,                          \
             TelNO1  TEXT NOT NULL,                            \
             Adres TEXT NOT NULL,                          \
             Ürünbilgisi TEXT NOT NULL,                           \
             ÜrünFiyatı TEXT NOT NULL,                              \
             TeslimTarihi TEXT NOT NULL)")    

işlem.execute(sorgutable)
bağlantı.commit()


#--------TABLOYA ATAMA------#

def LİSTELE():
    dosya.musteri_bilgisi.clear()
    dosya.musteri_bilgisi.setHorizontalHeaderLabels(("NO","TC KimlikNo","Müşteri Adı","Müşteri Soyadı", \
                                                          "TelNo","TelNo1","Adres",\
                                                           "Ürün Bilgisi","Ürün Fiyatı","Teslim Tarihi"))
    dosya.musteri_bilgisi.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
    işlem.execute("SELECT * FROM ARCELİK")
    for Satırındex,Satırveri in enumerate(işlem):
        for Sutunındex,Sutunveri in enumerate(Satırveri):
            dosya.musteri_bilgisi.setItem(Satırındex,Sutunındex,QTableWidgetItem(str(Sutunveri)))
LİSTELE()


#--------TABLE WİDGET İÇİNDEKİ DEGERLERİMİZİ Label  İÇİNE GÖNDEREME------# 

def DOLDUR():

    secili=dosya.musteri_bilgisi.selectedItems()
    veriler=(str(secili[1].text()))
    dosya.lblbilgi.setText(str(veriler))
    
 
#------Sıgnal_sloat bağlantısı-------#
dosya.btn_musteriyazdir.clicked.connect(DOLDUR)
 

sys.exit(uygulama.exec_())

Eğer tek bir hücre içindeki veriyi almak istiyorsan böyle yapa bilirsin:



row = dosya.musteri_bilgisi.currentRow()
veri = dosya.musteri_bilgisi.item(row, 1).text()
dosya.lblbilgi.setText(veri )

Aynı satırda olan birden fazla hücrenin değerini tek label’e yazdırmak için hepsini string şeklinde birleştire bilirsin:

row = dosya.musteri_bilgisi.currentRow()
col_Count = dosya.musteri_bilgisi.columnCount()

veriler= ""
for col in range( col_Count ):
         veriler += dosya.musteri_bilgisi.item(row, col).text() + " "

dosya.lblbilgi.setText( veriler )

@Asif çok teşekkür ederim pythonda yeniyim,günlerdir bu konu hakkında çözüm arıyordum çok yardımcı oldunuz :slight_smile:

1 Beğeni

yalnız .currentRow() seçili satrın numarasını veriyor.Eğer hiç bir satrı seçmezseniz -1 döndürüyor.

o yüzden DOLDUR() fonkisyonunda row değişkeninin -1 olub olmamasını if ile kontrol edin:



def DOLDUR():
        row = dosya.musteri_bilgisi.currentRow()

        if  row != -1:
             col_Count = dosya.musteri_bilgisi.columnCount()

             veriler= ""
             for col in range( col_Count ):
                    veriler += dosya.musteri_bilgisi.item(row, col).text() + " "

             dosya.lblbilgi.setText( veriler )

1 Beğeni

anladım teşekkür ederim zaman ayırdıgınız için :slight_smile:

1 Beğeni