PS:本明細書で使用される、Qtの4.8.4バージョンであるように、コードの異なるバージョンが異なっていてもよいです
ウィンドウのタイトルを設定します。
setWindowTitle(QStringの:: fromLocal8Bit(" 簡単な言語"));
ウィンドウの最大化ボタンを無効にします
setWindowFlags(Qtの::ダイアログ| Qtの:: WindowMinimizeButtonHint)。
横斑ウィンドウのサイズ変更
setFixedSize(これ - >幅()、この - >高さ());
マウスの左ボタンを押します
//仮想関数のオーバーライド
無効 mousePressEvent(QMouseEvent *イベント); 無効 QLoginSuccess :: mousePressEvent(QMouseEvent *イベント) { M_START = イベント - > POS(); // 获取当前lable空间的坐标 のQPoint lablePos = ui.label-> POS(); もし((m_start.x()> lablePos.x())&&(m_start.x()<(lablePos.x()+ 64))&&(m_start.y()> lablePos.y())&&(M_START .Y()<(lablePos.y()+ 64 ))) { qDebug() << GBK ::のToUnicode(" !コントロールの")<< てendl; isNeedDrag = 真; } }
マウスの動き
無効 mouseMoveEventを(QMouseEvent * イベント)。 空 QLoginSuccess :: mouseMoveEvent(QMouseEvent * イベント) { もし(isNeedDrag == 真) { m_end = イベント - > POS(); m_PosVector.push_back(m_end)。 もし(m_PosVector.size()> = 2 ) { QPointのPP = m_PosVector.at(m_PosVector.size() - 1) - m_PosVector.at(m_PosVector.size() - 2)+ ui.label-> POS(); ui.label - > 移動(pp.x()、pp.y())。 } } }
マウスアップ
無効 mouseReleaseEventを(QMouseEvent * イベント)。 空 QLoginSuccess :: mouseReleaseEvent(QMouseEvent * イベント) { // falseにフラグ isNeedDrag = 偽; }
キーボードのキーを取得します。
無効 keyPressEvent(QKeyEvent * イベント)。 空 PlaneGame :: keyPressEvent(QKeyEvent * イベント) { もし(イベント - >キー()== Qtの:: KEY_LEFT) { もし(ui.meLabel-> POS()X()> = 3 ) { ui.meLabel - >移動(ui.meLabel->ポスト()X() - 。10、ui.meLabel-> POS()は、y()。)。 } } それ以外の 場合(イベント - >キー()== Qtの:: Key_Right) { もし(ui.meLabel-> POS()X()<= 429 ) { ui.meLabel - >移動(ui.meLabel->ポスト()×()+ 10、ui.meLabel-> 。POS()は、y())。 } } それ以外の 場合(イベント - >キー()== Qtの:: Key_F1) { CBullet *弾丸= 新しい CBullet(この); 弾丸 - >移動(ui.meLabel->ポスト()×()+。22、ui.meLabel-> POS()は、y()+。11 ); bullets.push_back(弾丸)。 弾丸 - > ショー(); } }
ダイアログイベントハンドラを閉じます
空 closeEvent(QCloseEvent * イベント)。