QTRuby Strategy for setting up an addition twixt 2 lineEdits

Hello-

Thanks to some help previously received here (thanks to Ken B.), I
have managed to practice using blocks of code with the connect method to
assign values to several class variables using lineEdit objects and
display them to a third lineEdit object.

I am now trying to figure out a strategy for using a method to:

  1. determine when two class variables have BOTH had their values changed
    by changes in 2 separate lineEdit fields

and

2.once detected, the method will calculate the sum of these two numbers
and display it in a third lineEdit field.

I have tried to use the sum method alone rather than as a slot as well
as signaling the sum slot method after each of the lineEdit boxes have
been changed to no avail.

My (relevant) code currently:

require ‘Qt’

class Form1 < Qt::Widget
slots ‘sum()’
attr_reader :textLabel1
attr_reader :textLabel2
attr_reader :textLabel3
attr_reader :pushButton1
attr_reader :lineEdit1
attr_reader :lineEdit2
attr_reader :lineEdit3

def initialize(parent = nil, name = nil, fl = 0)
    super
    if name.nil?
            setName("Form1")
    end

@a=0
@b=0
<-----snipped widget geomeotries----->
#sets @a and @b by user input
@lineEdit1.connect(SIGNAL(“textChanged(const QString &)”)) do |x| @a = x
end
@lineEdit2.connect(SIGNAL(“textChanged(const QString &)”)) do |x| @b = x
end

Qt::Object.connect(@pushButton1, SIGNAL(“clicked()”), @lineEdit1,
SLOT(“clear()”) )
Qt::Object.connect(@pushButton1, SIGNAL(“clicked()”), @lineEdit2,
SLOT(“clear()”) )
Qt::Object.connect(@pushButton1, SIGNAL(“clicked()”), @lineEdit3,
SLOT(“clear()”) )

@lineEdit1.connect(SIGNAL(“textChanged(const QString &)”)) do
|x| if @b > 0
sum
end

@lineEdit2.connect(SIGNAL(“textChanged(const QString &)”)) do
|x| if @a > 0
sum
end
end

def sum
if (@a > 0 and @b > 0)
@c = @a + @b
emit @lineEdit3.setText(@c.to_s)
end
end

def languageChange()
    setCaption(trUtf8("Form1"))
    @textLabel1.setText( trUtf8("addend 1") )
    @textLabel2.setText( trUtf8("addend 2") )
    @textLabel3.setText( trUtf8("sum") )
    @pushButton1.setText( trUtf8("Reset") )
end

end

I don’t know if this is the right strategy…it seemed more cut and
dried to me when I was writing CLI programs…

Any conceptual help or code snippets would be appreciated-
Thans in advance-

Matthew B.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs