Search code examples
rubyqtqt4

How do I keep a value within QLineEdit to retain its value after program is closed?


I am using Qt Ruby

How do I keep the value of a user entered QlineEdit to keep its state even after the program is closed, in that way, the user can access the contents the next time he opens the program.


Solution

  • Solution 1 - using File.write/read:

    edit_widget = Qt::LineEdit.new(parent)
    File.write(filename, edit_widget.text)
    exit
    

    After the program re-start:

    text = File.read(filename)
    edit_widget.setText text
    

    Solution 2 - using QSettings:

    settings = Qt::Settings.new(filename, Qt::Settings::NativeFormat)
    
    edit_widget = Qt::LineEdit.new(parent)
    edit_widget.text = "abcde"
    
    settings.setValue("field1", Qt::Variant.fromValue(edit_widget.text))
    settings.sync
    exit
    

    After the program re-start:

    settings = Qt::Settings.new(filename, Qt::Settings::NativeFormat)
    edit_widget = Qt::LineEdit.new(parent)
    edit_widget.text = settings.value("field1").toString