PyQt lineEdit在函数调用

时间:2018-06-08 15:27:37

标签: python pyqt qcombobox qpushbutton qlineedit

#^^^^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)

通过lineEditpyqtSlot()连接到函数后,它似乎获取了值,但如果我尝试使用其他函数中的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')的值。

1 个答案:

答案 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

的作用域