0

これはテトリスです。

Qt Designer で、新しい Mani ウィンドウを追加しました。次に、フレーム ウィジェットをウィンドウに追加し、いくつかのプッシュ ボタン (新しいゲームと一時停止) を追加しました。フレームを QtGlass クラスに昇格させました。

次に、クラスを編成しました。

class Field : public QMainWindow {
    Q_OBJECT
...

class QtGlass : public QFrame {
        Q_OBJECT    
    ...

ボタンをクリックした後、すぐにフォーを自分の競技場、つまりフレームに戻したいと思います。

Field クラス内にいるときは、次のことができます: widget.frame->setFocus();

しかし、ボタンをクリックすると、Field クラスから外れているようです。Signal/Slot エディターでイベントを QtGlass スロットに接続したため、QtGlass 内にいるようです。

フォーカスを設定するのを手伝ってもらえますか?

4

1 に答える 1

0

デフォルトでは、QFrame はフォーカスを受け入れません。のコンストラクターに次の行を追加しますQtGlass

setFocusPolicy(Qt::StrongFocus);

また、クラスの名前を で始めないでくださいQこの質問を参照してください。

于 2013-06-08T08:38:47.973 に答える