QtにおけるQLineEditによる単一行テキスト入力フィールドの活用

Qtフレームワークは、ユーザーインターフェース開発において豊富なウィジェットを提供しており、その中でも QLineEdit は単一行のテキスト入力に特化した重要なコンポーネントです。このクラスは QWidget を直接継承しており、フォーム入力やログイン画面など、文字列の簡易入力が必要な場面で広く利用されます。

QLineEditの基本的な構築方法

QLineEdit のインスタンスは、主に2つのコンストラクタを使って生成できます。

QLineEdit(QWidget *parent = nullptr);
QLineEdit(const QString &text, QWidget *parent = nullptr);
  • text: 初期状態で入力フィールドに表示する文字列を設定します。
  • parent: 親ウィンドウを指定し、メモリ管理と配置の整合性を保ちます。nullptr を指定した場合、独立したトップレベルウィンドウとして扱われます。

主なプロパティと操作メソッド

QLineEdit は柔軟な機能を持つため、以下の代表的なメソッドがよく使用されます:

メソッド 説明
setPlaceholderText() 空欄時のヒントテキストを設定
setClearButtonEnabled(true) 入力内容を一括削除する「×」ボタンを有効化
setEchoMode() 表示形式を変更(例:パスワード入力時)
setStyleSheet() CSS風スタイルで外観をカスタマイズ
setGeometry(x, y, w, h) 位置とサイズを一度に設定

実践例:ログインフォームの作成

以下は、ユーザー名とパスワードを入力できるシンプルなログイン画面の実装例です。

// ウィンドウタイトルの設定
this->setWindowTitle("ログイン");

// ユーザー名入力フィールド
QLineEdit* usernameInput = new QLineEdit(this);
usernameInput->setGeometry(200, 100, 300, 40);
usernameInput->setPlaceholderText("ユーザー名を入力してください");
usernameInput->setClearButtonEnabled(true);
usernameInput->setStyleSheet("color: #2c3e50; padding: 5px;");

// パスワード入力フィールド
QLineEdit* passwordInput = new QLineEdit(this);
passwordInput->setGeometry(200, 160, 300, 40);
passwordInput->setPlaceholderText("パスワードを入力してください");
passwordInput->setClearButtonEnabled(true);
passwordInput->setEchoMode(QLineEdit::Password); // 入力文字をマスク
passwordInput->setStyleSheet("color: #2c3e50; background-color: #ecf0f1;");

このコードにより、視認性の高い入力フォームが生成され、特にパスワードフィールドでは安全のために入力内容が隠蔽されます。

スタイリングとレイアウトの最適化

見た目の調整には setStyleSheet が非常に有効です。フォント色、背景、余白などをCSSライクに定義でき、保守性も高まります。また、move(x, y) ではなく setGeometry(x, y, width, height) を使うことで、位置とサイズを同時に設定でき、コードの簡潔さが向上します。

タグ: Qt C++ QLineEdit GUI スタイリング

7月5日 23:53 投稿