2

私のクラスは QWidget を使用しており、そこにいくつかの QPushButtons があり、move() によってウィンドウに設定されている各ボタンの上に QLabel を設定したいのですが、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 を追加し、move シグナルをスロットに接続します。スロットは、次の方法でウィジェットのジオメトリを変更する関数である必要があります。

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 に答える