If you are going to have five QLineEdit
s for each MainWindow
, then you want them to be members of your class. Just add them to your class definition:
class MainWindow
{
// ...
private:
// ...
QLineEdit* street1BetSize;
QLineEdit* street2BetSize;
QLineEdit* street3BetSize;
QLineEdit* street4BetSize;
QLineEdit* street5BetSize;
}
Now, each MainWindow
object will have 5 pointers to QLineEdit
. These make up part of the state of that object and can be accessed by any of its member functions. Now change your constructor to the following, so that you don't redefine the names:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
street1BetSize = new QLineEdit("0");
street2BetSize = new QLineEdit("0");
street3BetSize = new QLineEdit("0");
street4BetSize = new QLineEdit("0");
street5BetSize = new QLineEdit("0");
}
In fact, you'd be better off using the member initialization list, as you have done for QMainWindow
and ui
:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow),
street1BetSize(new QLineEdit("0")), street2BetSize(new QLineEdit("0")),
street3BetSize(new QLineEdit("0")), street4BetSize(new QLineEdit("0")),
street5BetSize(new QLineEdit("0"))
{ }
And now your constructor doesn't need to do any work.
Now you can refer to street1BetSize
and friends in the other member functions of MainWindow
. However, it's always very suspect when you have variables that are numbered, like streetXBetSize
. This seems like a great place for an array or container. Why not try an std::vector<QLineEdit>
, and then you can add and remove QLineEdit
s as you wish. Your class definition would now have:
class MainWindow
{
// ...
private:
// ...
std::vector<QLineEdit> streetBetSizes;
}
And your constructor could now simply do:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow)
{
for (int i = 0; i < 5; i++) {
streetBetSizes.push_back(new QLineEdit("0"));
}
}