Taro3

View on GitHub

QDialogの使用

私たちは、無題ではないタスクを提供したいと思っています。ユーザはタスクを作成するときにその名前を定義する必要があります。最も簡単な方法は、ユーザがタスク名を入力できるダイアログを表示することです。幸いなことに、QtはaddTask()にぴったりなダイアログを提供してくれます。

#include <QInputDialog>
...
void MainWindow::addTask()
{
    bool ok;

    QString name = QInputDialog::getText(this,
                                         tr("Add task"),
                                         tr("Task name"),
                                         QLineEdit::Normal,
                                         tr("Untitled task"),
                                         &ok);
    if (ok && !name.isEmpty()) {
        qDebug() << "Adding new task";
        Task* task = new Task(name);
        mTasks.append(task);
        ui->tasksLayout->addWidget(task);
    }
}

QInputDialog::getText関数は、ダイアログを表示するstaticなブロック関数です。ユーザがダイアログで確認/キャンセルすると、コードは続行されます。アプリケーションを実行して新しいタスクを追加しようとすると、このように表示されます。

ダイアログ

QInputDialog::getTextのシグネチャは以下のようになります。

QString QInputDialog::getText(
    QWidget *parent,
     const QString &title,
      const QString &label,
       QLineEdit::EchoMode mode = QLineEdit::Normal,
        const QString &text = QString(),
         bool *ok = nullptr, ...)

内容を見てみましょう。

この例では無視しても問題ないオプションのパラメータが他にもいくつかあります。


戻る