그래서 저는 PyQt와 함께 Python을 사용하고 있습니다. 매우 이상한 문제가 있습니다. 한 줄에 OK를 인쇄하는 문자열은 몇 줄의 코드 뒤에는 인쇄되지 않습니다! 내가 무엇을 얻을Python과 PyQt 문자열은 인쇄 할 수 없습니다.
name = str(self.lineEdit.text().toUtf8())
self.let_change = Search()
name_no_ind = self.let_change.indentation(name)
print(name_no_ind)
name_cap = self.let_change.capital(name)
name_low = self.let_change.lower(name)
print(name_no_ind, name_cap, name_low)
col = self.combobox.currentIndex()
row = 0
for i in range(0, self.tableWidget.rowCount()):
try:
find_no_ind = self.let_change.indentation(self.tableWidget.item(row, col).text())
find_cap = self.let_change.capital(self.tableWidget.item(row, col).text())
find_lower = self.let_change.lower(self.tableWidget.item(row, col).text())
if name_no_ind or name_cap or name_low in find_no_ind or find_cap or find_lower:
self.tableWidget.setItemSelected(self.tableWidget.item(row, col), True)
print("Item found in %d, %d" % (row,col))
row += 1
except AttributeError:
row += 1
을 그리고 여기 :
Αντωνης
('\xce\x91\xce\xbd\xcf\x84\xcf\x89\xce\xbd\xce\xb7\xcf\x82', '\xce\x91\xce\x9d\xce\xa4\xcf\x8e\xce\x9d\xce\x97\xce\xa3', '\xce\xb1\xce\xbd\xcf\x84\xcf\x8e\xce\xbd\xce\xb7\xcf\x82')
Item found in 0, 0
그 이상하지가 여기 내 코드는? OK를 인쇄 한 다음 인쇄하지 않습니다. 아무도 내가 뭘 할 수 있는지 아니?
PS : 여기에 기능은 다음과 같습니다
# -*- coding: utf-8 -*-
class Search():
#A function that removes indentations:
def indentation(self, name):
a = name
b = ["ά", "Ά", "ή", "Ή", "ώ", "Ώ", "έ", "Έ", "ύ", "Ύ", "ί", "Ί", "ό", "Ό"]
c = ['α', 'Α', 'η', 'Η', 'ω', 'Ω', 'ε', 'Ε', 'υ', 'Υ', 'ι', 'Ι', 'ο', 'Ο']
for i in b:
a = a.replace(i, c[b.index(i)])
return a
# A function that makes letters capital:
def capital(self, name):
a = name
greek_small = ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω", "ς"]
greek_capital = ["Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ", "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ", "Φ", "Χ", "Ψ", "Ω", "Σ"]
for i in greek_small:
a = a.replace(i, greek_capital[greek_small.index(i)])
return a
#A function that makes letters lower:
def lower(self, name):
a = name
greek_small = ["α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ", "φ", "χ", "ψ", "ω", "ς"]
greek_capital = ["Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ", "Λ", "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ", "Φ", "Χ", "Ψ", "Ω", "Σ"]
for i in greek_capital:
a = a.replace(i, greek_small[greek_capital.index(i)])
return a
기본적으로는 대문자 또는 그리스어 문자를 낮추고 ...
해결! : 스티브는 초기 문제를 해결하고 기반으로 무엇을 그가 말하길, 나는 이것으로 모든 것을 해결했습니다.
name = str(self.lineEdit.text().toUtf8())
self.let_change = Search()
name_no_ind = self.let_change.indentation(name)
name_cap = self.let_change.capital(name)
name_low = self.let_change.lower(name)
name_list = [name, name_no_ind, name_cap, name_low]
col = self.combobox.currentIndex()
row = 0
for i in range(0, self.tableWidget.rowCount()):
try:
item_ = str(self.tableWidget.item(row, col).text().toUtf8())
find_no_ind = self.let_change.indentation(item_)
find_cap = self.let_change.capital(item_)
find_lower = self.let_change.lower(item_)
item_list = [find_no_ind, find_cap, find_lower]
for x in name_list:
for y in item_list:
if x in y:
self.tableWidget.setItemSelected(self.tableWidget.item(row, col), True)
row += 1
except AttributeError:
row += 1
죄송합니다, 지금 추가했습니다 ... – Antoni4040
당신은 맞습니다 만 그게 유일한 문제는 아닙니다 : 그 후에 (긴 시퀀스 또는 in 또는) 그것이 필요한 작업을 수행하지 않습니다. 그 안에 문자열이있는 항목 만 선택하지 않으면 모든 항목이 선택됩니다! 내가 말하고자하는 바를 이해하기를 바란다. 나는 바른 설명을하는 것을 의심한다. – Antoni4040
기본적으로 또는를 제거한다. 괄호 없이는 나쁜 소식이며, 단지 셀에서 값을 얻는다. (val처럼 (self.greek_capitials의 val [0] 또는 self.greek_lower의 val [0])을 검사하여 선행 공백을 없애려면 strip을 사용하십시오. 함수 당 복사 - 문자열로 처리해야 시작할 때 문자열이 있다는 것을 알기 만하면됩니다. BTW 이것은 별도의 문제이며 그것을 해결하지 못하면 새로운 질문으로 제기해야합니다. –