2

Qt Designer を使用して GUI を設計しましたが、複数選択でコンボ ボックスを作成しようとしたときに、.UI ファイルで作成された GUI 要素を同等の .CPP ファイルで変更できないように見えることに気付きました。

基本的に、それが既知の機能であり、.CPP ファイルのみを介して GUI を実装する必要があるのか​​ 、それとも複数選択を適切に実装していないのか疑問に思っていますか? 私はQtが初めてで、少し混乱しています。

これを試しましたが、既存のアプリ内に実装しようとすると機能しません: ComboBox of CheckBoxes?

ここに私のコードのセクションがあります。リンクされた回答に従って、Qt Designerで設計されたGUIを初期化し、新しいモデルを作成してそれにデータを割り当て、コンボボックスの1つのモデルを新しいものに変更しようとします。アプリケーションを実行すると、コンボ ボックスは表示されますが空です。

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ...

    QStandardItemModel model(3, 1); // 3 rows, 1 col
    for (int r = 0; r < 3; ++r)
    {
        QStandardItem* item = new QStandardItem(QString("Item %0").arg(r));

        item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
        item->setData(Qt::Unchecked, Qt::CheckStateRole);

        model.setItem(r, 0, item);
    }

    ui->comboBox_2->setModel(&model);
}
4

1 に答える 1

0

ヘッダー ファイルで新しいモデルをポインターとして宣言し、それをインスタンス化してコンボ ボックスに割り当てることで、問題を修正することができました。:D

于 2013-08-20T02:14:24.610 に答える