我有一个使用 QTDesigner 完成的 panel.ui 文件。这是一个 QFrame 类,矩形形状,上面很少有标签。我有一个 QListWidget 类,我在其中插入了 panel.ui 的 3 个实例。我创建了一个QListWidgetItem
然后使用List->SetItemWidget(..)
来填充我的列表。
结果是一个包含三个面板的列表。我还能够使用 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);
因此,在我尝试使用上述方法后,在 List 构造函数和循环内部myPanel->move()
,但它似乎不起作用。
我运行该应用程序,面板显示时没有我的偏移量(不知道为什么?)但是当我单击一个时,它会发生变化。