How to Retrieve the Value from a Spin Box in a Qt Widget Application in C++


C++


In this article, we show how to retrieve the value from a spin box in a Qt widget application in C++.

A spinbox is an element that is the equivalent of a number input element in HTML.

This is shown below.



So a spinbox is an element in which a program can obtain a number from a user.

So how do we place a spinbox in a program and retrieve the number from it which a user selects?

This is what we go over in this program.

So to place a spinbox in a program, we place the following in the "widgets.ui" file.

So in order to understand this spinbox widget, you can see that the widget is of class "QSpinBox". Every spinbox is of this class in a Qt widget application. The name, however, can change to identify the specific spinbox you are referring. By default, the first spinbox in an application will be "spinBox". Each additional spinBox will be enumerated. For example, the second spinbox in an application will have the name, "spinBox_2". The third will have the name, "spinBox_3", etc. Of course, these name values can be changed manually. The names must be different in order to be able to reference each specific spinbox if you are to have more than 1 in an application.

So now that we have this spinbox in our "widget.ui" application, we need to go to our next page.

Next we go to the "widget.h" header file.

Since we have to create a variable that stores the value from the spinbox, we need to declare a variable that will be used to store this value. The declaration of variables go into the "widget.h" header file under the private keyword.

So the full contents of the "widget.h" file is shown below.



So you see that under the private keyword, we have an integer named spinboxvalue. This will be used in our application to store the value that the user selects from the spinbox.

So now and the last file we go to is the "widget.cpp" file.

In this file, we retrieve the value from the spinbox that the user enters and we output this value in the application output using the qDebug() function.

The contents of this file is shown below.

In this application, we retrieve the value from the spinbox and store it into the spinboxvalue variable we created in the "widget.h" file.

This application assumes that you have a push button in your application, because it retrieves the value from the spinbox upon the pressing the pushbutton.

So in our Qt widget application, we have the spinbox and a pushbutton whose name is "pushButton".

The retrieval of the value of the spinbox is done when the push button is clicked.

So inside of this clicked function, we specify the variable, spinboxvalue, and set it equal to, ui->spinBox->value();

ui references the user interface.

spinBox is the name attribute of the spinbox element we are targeting.

value() is the value specified in the spinbox.

Now to show you what value we get, we use the qDebug() function to output the value from the spinbox.

Let's say, you were to create another spinbox. Say you need to create a program that retrieves multiple values from a user, which could represent anything such as the number of people in your household, the number of people workiing in your household, etc.

So in order to now deal with 2 spinboxes, you need to add another spinbox.

If you use the Design element of the Qt software to add another spinbox, this will be the code you will add.



After this, you need to declare another variable in the "widget.h" file in order to store the value of the second spinbox. So add, int spinboxvalue2, to the "widget.h" file under the private keyword.

Then after that, you need to modify the "widget.ui" file to save the value from the second spinbox to the variable, spinboxvalue2.

This is shown below.



So now we've retrieved both values from the 2 spinbox elements.

Since the name attribute of the second element is "spinBox_2", we use this to retrieve the value from the second spinbox.

Again, that is the name that the software automatically generates if you don't change it. You can change that name. You just have to make sure that when referencing the element, you refer to it with the changed name.

And this is how to retrieve teh value from a spin box in a Qt widget in C++.


Related Resources

How to Write to a File in C++

HTML Comment Box is loading comments...