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) を使うことで、位置とサイズを同時に設定でき、コードの簡潔さが向上します。