存储PyQt4文本框中的字符串变量

问题描述 投票:-1回答:1

我用qt Designer创建了一个小的uic文件,以便使用PyQt4构建一个小的gui。该gui的一个元素是一个简单的文本框,我在其中设置一个字符串值(文本框称为RiskDate_Box)。在GUI中设置此值后,我想在下面的代码中将其用作字符串变量(此处未显示)。我的问题是,我无法存储它,在下面的代码中我以两种不同的方式尝试它(将其存储为Riskdate1和Riskdate2)。在编译代码之后,两个变量都是空的并且不等于我在GUI中设置的值,例如, '12 .08.2012' 。但是,如果我编译脚本,那之后只编译

Riskdate2=window.RiskDate_Box.toPlainText()

然后在Gui中设置的Riskdate被正确地分配给变量'Riskdate2'作为字符串。如果有人可以帮助我解决这个问题会很棒。

from PyQt4 import QtCore, QtGui, uic            
import sys

# Gui Code


qtCreatorFile = "untitled.ui"
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)

class MyWindow(QtGui.QDialog):
    def __init__(self):
        super(MyWindow, self).__init__()
        uic.loadUi("untitled.ui", self)              
        self.show() 
        self.RiskDate=self.RiskDate_Box.toPlainText()

if __name__ == '__main__':
   app=QtGui.QApplication.instance()
   app=0
   app = QtGui.QApplication(sys.argv)
   app.aboutToQuit.connect(app.deleteLater)
   window = MyWindow()
    #Try 1 to store variable
    Riskdate1=window.RiskDate
    # Try 2 to store variable
    Riskdate2=window.RiskDate_Box.toPlainText()
    sys.exit(app.exec_())
python user-interface pyqt
1个回答
1
投票

当QPlainTextEdit中的文本发生变化时,您需要发送s信号

void QPlainTextEdit :: textChanged()

只要文档内容发生变化,就会发出此信号;例如,插入或删除文本时,或应用格式时。

你需要做一些事情:

    self.RiskDate_Box.textChanged.connect(self.get_text)
    self.show() 

def get_text(self):
    self.RiskDate = self.RiskDate_Box.toPlainText())
    print (self.RiskDate)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.