Bir SparQL sorgusunun çıktısını (rdflib aracılığıyla) bir Döşeme GUI'sindeki bir liste kutusuna yerleştirmeye çalışıyorum. kodun geçerli sürümü:Tkinter'ın liste girdisinden bir liste kutusu oluşturmasına nasıl izin verilir
Button_4 = Button(self, text="Load object list", command=self.populateListbox)
Button_4.grid(row=14, column=0, sticky=N)
self.List_3 = Listbox(self, height=7, width=40, selectmode='single', exportselection=0)
self.List_3.grid(row=15, column=0, sticky=N)
def populateListbox(self):
g=rdflib.Graph()
filename = r'bim\Perceel4.owl'
g.load(filename, format='xml')
Layer = u'Asfaltplak_onderlaag'
qres = g.query(
"""SELECT DISTINCT ?value ?name ?file ?frag
WHERE {
-- SparQL query for results--
}""",
initNs=dict(
cbim=Namespace("http://www.coinsweb.nl/cbim-1.1.owl#")))
for row in qres:
if (rdflib.term.Literal(Layer, datatype=rdflib.term.URIRef(u'http://www.w3.org/2001/XMLSchema#string')) in row):
self.lst = row['file']
self.List_3.insert("end",self.lst)
Ben komutunu kullanarak SPARQL sorgusu yazdırırsanız: print: self.lst, aşağıdaki yazdırma mesajı alıyorum: Ben programı çalıştırdığınızda
DTB HRB 166.495 - 166.038 VH_gml.xml
DTB OPR 167.647 - 167.601 VH_gml.xml
DTB PST 170.824 - 170.769 VH_gml.xml
DTB HRB 166.038 - 164.169 VH_gml.xml
DTB PST 167.696 - 167.767 VH_gml.xml
...etc (more of these filenames)
ve liste kutusunu doldurmak için butona tıklayın, sadece liste kutusundan, yani listenin ilkinden bir isim alıyorum. Yazdırma komutunun çıktısı gibi liste kutusunun içine eklenen listenin tamamını nasıl alabilirim?
Ps. Ben (. * Lst öz, "son") self.List_3.insert kullanarak '*' denedi, ama bu sadece gibi, isim bölünmüş oluşur bir liste halinde isim böler:
D
T
S
1
2
..etc
U pdate: Ben gibi liste bölünmüş eklemiş
:
...
output = row['file']
self.lst = output.split("\n")
self.List_3.insert("end",*self.lst)
ama yine de sadece liste (listenin sonuncusu) bir liste girişi verir. Yeni kurulumunda self.lst baskı varsa, yazdırır:
[u'DTB HRB 167.639 - 167.696 VH_gml.xml']
[u'DTB PST 167.134 - 167.274 VH_gml.xml']
[u'DTB HRB 166.038 - 164.169 VH_gml.xml']
... vb
BTW, sorunun cevabını çözmenize yardımcı oldu mu, yoksa hala problem çözüyor musunuz? Eğer hala onlara sahipseniz, nerede takıldığını bana bildirin, bu yüzden daha fazla yardımcı olabilirim. – Lafexlos
Cevabınız için teşekkür ederiz! Daha fazla çalışabildim ama hala bir problemim var. Yukarıdaki soruyu güncelledim! –