C++ 使每个按钮的QT设计器窗体不同

C++ 使每个按钮的QT设计器窗体不同,c++,winforms,qt,user-interface,C++,Winforms,Qt,User Interface,我有两个按钮和一个用户表单界面:Form2。 我想看到不同的文本创建form2。让我们看一个例子 QVector<QString> text { "Iter FIRST", "Iter SECOND" }; for(size_t i = 0; i < 2; ++i) { Form2 * form2 = new Form2(); //creating form connect(this, &MainWindow::SendCurretText, for

我有两个按钮和一个用户表单界面:Form2。 我想看到不同的文本创建form2。让我们看一个例子

QVector<QString> text { "Iter FIRST", "Iter SECOND" };
for(size_t i = 0; i < 2; ++i)
{
     Form2 * form2 = new Form2(); //creating form
     connect(this, &MainWindow::SendCurretText, form2, 
              &Form2::ShowText);//connect to the second form`(textEdit)
      emit MainWindow::SendCurretText(text[i]);
 QPushButton *btnShowForm = new QPushButton(this);
 btnShowForm->setGeometry(i + 40, i + 100, 50, 50);
 connect(btnShowForm, &QPushButton::clicked, this, [=]()
 {
     form2->show();
 });
}//end for()
QVector文本{“Iter第一”、“Iter第二”};
对于(尺寸i=0;i<2;++i)
{
Form2*Form2=新Form2();//创建表单
连接(此,&main窗口::SendCurretText,form2,
&Form2::ShowText);//连接到第二个表单`(textEdit)
发射主窗口::SendCurretText(文本[i]);
QPushButton*btnShowForm=新的QPushButton(本);
btnShowForm->setGeometry(i+40,i+100,50,50);
连接(btnShowForm,&QPushButton::单击,此,[=]()
{
form2->show();
});
}//结束()
结果:
点击按钮1,我看到“Iter秒”
点击按钮2,我看到“Iter秒”

预期结果:
点击按钮1,我看到“Iter优先”

点击按钮2,我看到“Iter秒”
+++i不是i++。试试这个:

QStringList text; text << "Iter FIRST" <<  "Iter SECOND";
for(qint32 i = 0; i < 2; i++)
{
     Form2 * form2 = new Form2(); //creating form
     connect(this, &MainWindow::SendCurretText, form2, 
              &Form2::ShowText);//connect to the second form`(textEdit)

     emit MainWindow::SendCurretText(text.at(i));

     QPushButton *btnShowForm = new QPushButton(this);
     btnShowForm->setGeometry(i + 40, i + 100, 50, 50);

     connect(btnShowForm, &QPushButton::clicked, this, [=](){ form2->show(); } );
}//end for()
QStringList文本;文本显示();});
}//结束()

这个问题与您的问题不一样吗?请发布原始代码!是的,你还没有回答