【问题标题】:Make QT Designer Form different for each button使每个按钮的 QT Designer 表单不同
【发布时间】:2019-01-03 11:01:07
【问题描述】:

我有两个按钮和一个用户表单界面: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()

结果:
通过单击按钮 1,我看到“Iter SECOND”
通过单击按钮 2,我看到“Iter SECOND”

预期结果:
通过单击按钮 1,我看到“Iter FIRST”
通过单击按钮 2,我看到“Iter SECOND”

【问题讨论】:

标签: c++ winforms qt user-interface


【解决方案1】:

++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()

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2017-08-26
    • 2012-02-03
    • 2018-06-03
    • 2013-10-28
    相关资源
    最近更新 更多