如何移动QLabel?

2 投票
1 回答
6440 浏览
提问于 2025-04-17 13:16

我这个类用的是QWidget,里面有一些QPushButton按钮。我想在每个按钮上面放一个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)

1 个回答

2

给你的类添加一个移动事件,并把移动信号连接到你的槽函数。你的槽函数应该是一个可以改变你小部件外观大小的函数,具体可以通过以下方式实现:

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

你的槽函数:

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

然后像下面这样连接它们:

connect(label_widget, SIGNAL(move(QPoint)), this, move_label(QPoint));

撰写回答