0

5 列のテーブルビュー (モデル) があります。そのうちの 1 つで、コンボボックスに 2 つのオプションを表示したいと考えています。オプションは決まっているので、デリゲートを使う必要はないと思います。私が間違っている?

for (int state=0; state <3; state++)
{
    QStandardItem item = new QStandardItem();
    item.setEditable( false );
    item.setTextAlignment( Qt.AlignmentFlag.AlignCenter );

    switch (state)
    {
        case 0: 
            item.setText( "Column 0" );
            item.setEditable( true );
            break;
        case 1:
            item.setText( "Column 1" );
            item.setEditable( true );
            break;
        case 2:
            //create a new combobox
            break;
    }
}
4

1 に答える 1

0

デリゲートを使用する必要がある (または少なくとも使用する必要がある) と思います。デリゲートは、ビュー(テーブルビューは基本的にレイアウトであり、モデル+デリゲートを介してコンテンツを取得します)をモデルに接続するオブジェクトです。モデルは、そのコンテンツがどのように表示されるかについて責任を負いません (すべきではありません)。これがデリゲートの役割です。ビューから要求されたときに、データ (モデル) を提示可能なエンティティに「変換」します。モデルは、そのデータのビューを宣言できません (宣言すべきではありません)。

于 2012-05-22T20:03:53.980 に答える