为QT中的按钮阵列制作单一功能

时间:2016-05-15 13:33:02

标签: c++ arrays qt oop qt5

我是QT的新人。我在一个数组中有35个push_buttons。我想为这个按钮数组编写单个函数。该功能只会设置字符串,每个按钮都不同。喜欢" 10,10"下一个喜欢" 15,15"等等 我见过signalmappers,我能够理解。

给出简单易懂的想法。

for (int i = 0; i < 35;i++){
    PB << new QPushButton();
}

ui->setupUi(this);

PB[0]=ui->pB_00;PB[1]=ui->pB_01;PB[2]=ui->pB_02;PB[3]=ui->pB_03;
PB[4]=ui->pB_04;PB[5]=ui->pB_05;PB[6]=ui->pB_06;PB[7]=ui->pB_07;
PB[8]=ui->pB_08;PB[9]=ui->pB_09;PB[10]=ui->pB_10;PB[11]=ui->pB_11;
PB[12]=ui->pB_12;PB[13]=ui->pB_13;PB[14]=ui->pB_14;PB[15]=ui->pB_15;
PB[16]=ui->pB_16;PB[17]=ui->pB_17;PB[18]=ui->pB_18;PB[19]=ui->pB_19;
PB[20]=ui->pB_20;PB[21]=ui->pB_21;PB[22]=ui->pB_22;PB[23]=ui->pB_23;
PB[24]=ui->pB_24;PB[25]=ui->pB_25;PB[26]=ui->pB_26;PB[27]=ui->pB_27;
PB[28]=ui->pB_28;PB[29]=ui->pB_29;PB[30]=ui->pB_30;PB[31]=ui->pB_31;
PB[32]=ui->pB_32;PB[33]=ui->pB_33;PB[34]=ui->pB_34;

2 个答案:

答案 0 :(得分:0)

您可以添加仅包含两个参数的函数。第一个参数是访问哪个按钮。下一个是要设置的文本。 例如:

{{1}}

您可以循环切换以执行多个按钮。

答案 1 :(得分:0)

如果ui元素中已存在按钮,则当前循环不需要创建new QPushButtons。您可以在代码中使用设计器来插入按钮,而不是使用设计器。

// Your button array, this is likely a private member in your class.
QList< QPushButton* > PB;

for( auto i = 0; i < 35; ++i )
{
    // Create new button with textValue == "i" 
    auto button = new QPushButton{ QString::number( i ) };

    // Store in your list
    PB << button;

    // Add to ui
    ui->containerQWidget->layout()->addWidget( button );
}