2

我的班级使用 QWidget,我在那里有一些 QPushButtons,我想在每个按钮的顶部设置一个 QLabel,这些按钮是通过 move() 在窗口上设置的,但 QLabel 不想移动......我使用setMargin 但它从左到右移动它,但不是向上或向下移动。我的代码有一个例子:

    self.btn = QPushButton(QIcon(),"Show table", self)
    self.btn.move(360, 10)
    self.btn.resize(100, 20)
    self.btn.clicked.connect(self.doAction)

    self.label = QLabel("Here comes the boom")

    layout_LineEdit = QVBoxLayout()
    layout_LineEdit.addWidget(self.label)
    self.setLayout(layout_LineEdit)
4

1 回答 1

2

将 moveEvent 添加到您的类并将移动信号连接到您的插槽,您的插槽应该是一个函数,可以通过以下方式更改小部件的几何形状:

YourClass::moveEvent(QMoveEvent *ev)
{ 
    emit move(ev->pos());
    QLabel::moveEvent(ev);
}

你的 SLOT 功能:

void move_label(QPoint *point)
{
    setGeomtry(0, 0, point->x, point->y);
}

并将它们连接如下:

connect(label_widget, SIGNAL(move(QPoint)), this, move_label(QPoint));
于 2013-01-23T16:20:05.517 回答