質問

USBボードのIOSの状態を取得/設定するための簡単なレイアウトがあります。 各行は、IOピンのモジュールと列に対応します。 目的は1行に出力の状態を設定し、入力が別の行でチェックされているものと一致するかどうかを確認することです。

レイアウトの設定を設定しました

QLabel * templab = new QLabel;
templab ->setText(QString("Broche ->"));
gridLayout_2->addWidget(templab, 0, 0);
for (int row = 1; row < modules+1 ;row++)
{
    QLabel * templab = new QLabel;
    templab ->setText(QString("Module %1").arg(row-1));
    gridLayout_2->addWidget(templab, row, 0);
}
for (int col = 1; col < colonnes+1 ;col++)
{
    QLabel * templab = new QLabel;
    templab ->setNum(col);
    gridLayout_2->addWidget(templab, 0, col);
}
for (int row = 1; row < modules +1 ;row++)
{
    for (int col = 1; col < colonnes+1 ;col++)
    {
        QCheckBox* checkBox = new QCheckBox();
        gridLayout_2 ->addWidget(checkBox,row,col);
    }
}
.

チェックボックスの状態を確認する方法?

GridLayout_2-> ItemAtPosition(x、y)

を使用してチェックボックスの状態を取得する方法についての手がかりが見つかりませんでした

たくさんありがとう。

編集:次のスパイクアドバイス、私は使用しました:

QCheckBox * checkBox = findChild<QCheckBox*>(ui->gridLayout_5->itemAtPosition(x,y)->widget()->objectName());
.

私が発見したことをそれをするためのもう一つの方法があります:

QCheckBox * ios[8][16];

 for (int row = 1; row < modules +1 ;row++)
    {
        for (int col = 1; col < colonnes+1 ;col++)
        {
            ios[row-1][col-1]= new QCheckBox();
            ui->gridLayout_5 ->addWidget(ios[row-1][col-1],row,col);
        }
    }
.

と状態をテストするには:

if (ios[x][y]->checkState() == Qt::Checked)
{
    qDebug()<<"Checked"<<endl;
}
else
    qDebug()<<"UN Checked"<<endl;

}
.

役に立ちましたか?

解決

gridLayout->findChild<QCheckBox*>(gridLayout->itemAt(0)->widget()->objectName());

を使用できます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top