Хранить строковые переменные из текстового поля PyQt4 - PullRequest
0 голосов
/ 12 марта 2019

Я создал небольшой файл uic с помощью qt Designer, чтобы построить небольшой графический интерфейс с использованием PyQt4. Одним из элементов этого графического интерфейса является простое текстовое поле, в котором я устанавливаю строковое значение (текстовое поле называется RiskDate_Box). После установки этого значения в графическом интерфейсе я хочу использовать его как строковую переменную в следующем коде (здесь не видно). Моя проблема в том, что я не могу сохранить его, в приведенном ниже коде я пробовал это двумя разными способами (сохранить как Riskdate1 и Riskdate2). После компиляции кода обе переменные пусты и не равны значению, которое я установил в графическом интерфейсе, например '12 .08.2012' . Однако, если я скомпилирую скрипт и после этого скомпилирую только

Riskdate2=window.RiskDate_Box.toPlainText()

тогда 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_())

1 Ответ

1 голос
/ 12 марта 2019

вам нужно отправить сигнал s при изменении текста в вашем QPlainTextEdit

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...