#^^^^class stuff here for setting UI^^^^
# connecting combobox to slot/function get_baffle_number
self.baffle_number_combobox.currentIndexChanged.connect(get_baffle_number)
# connecting PushButton action "clicked" to function on_click
self.pushButton.clicked.connect(on_click)
#connecting lineEdit to slot/function get_baffle_cost
self.baffle_cost_lineEdit.textEdited.connect(get_baffle_cost)
@pyqtSlot()
def get_baffle_cost(text):
baffle_cost = text
return baffle_cost
def get_baffle_number(text):
#add 1 to the index returned by comboBox to get the number desired by user
baffle_number = text + 1
return baffle_number
def calc_baffle_cost():
test_total = (get_baffle_cost() * get_baffle_number())
return test_total
@pyqtSlot()
def on_click(self):
baffle_cost = calc_baffle_cost()
print(baffle_cost)
通过lineEdit
将pyqtSlot()
连接到函数后,它似乎获取了值,但如果我尝试使用其他函数中的baffle_cost
,则会立即转储它。我在调试期间在PyCharm中观察它并且只要lineEdit
看起来有焦点就保持它。当pushButton
失去价值时按下baffle_cost
。
我无法在get_baffle_cost
的任何地方使用返回的calc_baffle_cost()
。
我错过了什么吗?我得到的最大的是尝试简单地打印baffle_cost
并打印十六进制。我假设这是一个记忆位置,但不能确定。 (Python新手)
很抱歉,如果这还不够。我只是试图从lineEdit
中取comboBox
并将其乘以orders.filter(created__date=datetime.date(2018, 6, 8)).values('id__count')
的值。
答案 0 :(得分:1)
看来我的问题是双重的,或更多。
我没有正确地确定我的功能并且没有使用正确的命名空间。 (对不起,如果这个术语不正确。我是Python和PyQt的新手。)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
# sizing of widgets
def retranslateUi(self, MainWindow):
# UI stuff here QlineEdits, etc.
self.baffle_cost_lineEdit.editingFinished.connect(self.get_baffle_cost)
def get_baffle_cost(self):
baffle_cost = self.baffle_cost_lineEdit.text()
return baffle_cost
这需要与我retranslateUi()
类中的Ui_MainWindow
函数位于同一范围(缩进)中。
我认为如果我能更好地构建我的项目,这不会是一个问题。我肯定已经从一个脚本中学到了所有这一切。 (program.py)
我遇到的其他问题是从text()
调用的PyQt函数QlineEdit
返回QString
而不是str
。我只需将其转换为字符串。
我失去了价值,因为函数get_baffle_cost
未正确确定baffle_cost_lineEdit