QTDesigner を使用して panel.ui ファイルを作成しました。これは QFrame クラスで、ラベルがほとんどない長方形です。そして、panel.ui の 3 つのインスタンスを挿入する QListWidget クラスがあります。を作成しQListWidgetItem
、それを使用List->SetItemWidget(..)
してリストに入力します。
結果は、3 つのパネルで満たされたリストです。また、dragDropMode internalMove を使用して、リスト内のパネルを移動することもできました。
また、パネルをクリックしたときにパネルを少し右にずらす機能もテストしましたが、うまくいきました。
in procedure List::mousePressEvent(QMouseEvent *event)
Panel *child = static_cast<Panel*>(childAt(event->pos()))
...
int y= child->pos().y();
int x = child->pos().x();
child->move (x +10, y); `
問題: アプリを実行してリストを表示するとき、すべてのパネルを右に 10 オフセットして表示したいと考えています。したがって、上記のようthis->setItemWidget(myPanelItem, myPanel);
に使用しようとした後、リストコンストラクターとループ内myPanel->move()
で動作していないようです。
アプリを実行すると、パネルがオフセットなしで表示されますが (理由はわかりません)、パネルをクリックするとずれます。