ラベルを作成し、setPixmap を使用して .png 画像をラベルに添付しました。また、WindowFlags を設定して、タイトル バーを無効にし、フレームのないウィンドウを作成しました。それらを無効にしたため、何かをドラッグする機能も無効になるため、ウィンドウのフレームをドラッグするのとまったく同じように、マウスイベントを作成して (より良い方法がない限り)、画面上の任意の場所にラベルを配置したいと考えています。どうすればいいですか?例と簡単な説明をいただければ幸いです。
質問する
89 次
2 に答える
0
次の方法で、マウスによるラベルのドラッグを実装します。
class Label : public QLabel
{
public:
// Implement the constructor(s)
protected:
void Label::mouseMoveEvent(QMouseEvent* event)
{
if (!m_offset.isNull()) {
move(event->globalPos() - m_offset);
}
QLabel::mouseMoveEvent(event);
}
void Label::mousePressEvent(QMouseEvent* event)
{
// Get the mouse offset in the label's coordinates system.
m_offset = event->globalPos() - pos();
QLabel::mousePressEvent(event);
}
void Notifier::mouseReleaseEvent(QMouseEvent* event)
{
m_offset = QPoint();
QLabel::mouseReleaseEvent(event);
}
private:
// The mouse pointer offset from the top left corner of the label.
QPoint m_offset;
};
于 2013-11-02T12:20:44.833 に答える