「Qtのコントロール - ラインエディット」の版間の差分

編集の要約なし
編集の要約なし
113行目: 113行目:


== フォーカスイベント ==
== フォーカスイベント ==
QLineEditクラスには、textChangedやtextEdited等のシグナルは存在するが、フォーカスに関係したシグナルが存在しない。
<code>QLineEdit</code>クラスには、<code>textChanged</code>シグナルや<code>textEdited</code>シグナルは存在するが、フォーカスに関係したシグナルが存在しない。<br>
 
例えば、QLineEditの初期表示において、"キーワードを入力してください..."等を表示して、フォーカスインで消去する場合、
QLineEditクラスのfocusInEventおよびfocusOutEventをオーバーライドすることで実現できる。
<br>
<br>
以下の例では、QLineEditを継承した派生クラスを作成して、フォーカスイベントを処理している。
例えば、エディットコントロールの初期表示において、"キーワードを入力してください..."等を表示して、フォーカスインで消去する場合、<br>
Qt Designerで配置したラインエディットのコントロールは、QLineEditクラスを継承した派生クラスに昇格させる。
<code>QLineEdit</code>クラスの<code>focusInEvent</code>メソッドおよび<code>focusOutEvent</code>メソッドをオーバーライドすることで実現できる。<br>
<br>
以下の例では、<code>QLineEdit</code>クラスを継承した派生クラスを作成して、フォーカスイベントを処理している。<br>
Qt Designerで配置したラインエディットのコントロールは、<code>QLineEdit</code>クラスを継承した派生クラスに昇格させる。<br>
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
  // QLineEditEx.cpp
  // QLineEditEx.cpp