【问题标题】:PySide - How to dynamically update a string value based on QLineEdit Text value?PySide - 如何根据 QLineEdit 文本值动态更新字符串值?
【发布时间】:2014-02-16 17:17:57
【问题描述】:

每次来自 QLineEdit 的文本值发生变化时,如何使我的字符串动态更新?我尝试使用信号和插槽,并在 QLabel 上正常工作,但不是字符串。

self.lnEditCurrentNS = QtGui.QLineEdit(self) # This is my QLineEdit

my_string = 'none'
self.lnEditCurrentNS.textChanged.connect(self.onSelectedValue)

def onSelectedValue(self):
    selectedValue = self.txtEditCurrentNS.displayText()
    my_string = selectedValue

假设当前 lnEditCurrentNS = 'none',然后将其更改为 'hello'。 my_string 的值保持为 'none' 而不是更新为 'hello'。

当我拥有的组合框的当前索引更改时,lnEditCurrentNS 的值会动态更新(combobox = 'hello',lnEditCurrentNS = 'hello')

我对 PySide/PyQt 不是很熟悉,因此非常感谢任何指导。谢谢。

【问题讨论】:

    标签: pyqt4 pyside


    【解决方案1】:

    您在onSelectedValue 之外声明了my_string,您在onSelectedValue 内部分配了一个值。现在如果你在onSelectedValue之外使用my_string,它不会给出lineEdit的文本。

    您可以使用以下技巧:

    self.my_string = 'None'
    ...
    
    def onSelectedValue(self):
        self.my_string = self.textEditCurrentNS.text()
    

    您现在可以在代码中的任何位置使用self.my_string 来获得 lineEdit 的当前文本。

    【讨论】:

    • 我以前试过这个,但它也不起作用。我不确定我做错了什么。有趣的是,当我切换到标签时,它会立即生效。但是我不能使用标签,因为我试图根据给定的键显示元组的内容。
    • 您将 lineEdit 的文本分配给 my_string 内的 onSelectedValue,这是一个局部变量,不能在此方法之外的任何地方使用。您能否显示代码在哪里以及以哪种方法使用my_string。我的意思是您尝试在哪里(以哪种方法)打印或使用my_string 的值?
    • 我有一个名为 class MainWindow(QtGui.QWidget) 的类,在该类中我有 def __init__(self):,def initUI(self):,def onSelectedValue(self): 和其他几种方法。我在initUI 中声明了self.my_string 并在onSelectedValue 中分配了self.mY_string = self.txtEditCurrentNS.text() 如果它有帮助,我正在尝试实现这样的目标:示例 dict = {'keyA':('value1 ','value2') } 在组合框中,我列出了所有键。 Thus when that key is selected, I want to display all of the elements inside the tuple in a listbox.有什么建议吗?
    猜你喜欢
    • 2016-11-05
    • 1970-01-01
    • 2019-09-03
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多