QInputDialog с многострочным текстом - PullRequest
1 голос
/ 09 марта 2012

Мне нужно создать диалог ввода текста с несколькими строками. Есть ли способ сделать это с помощью QInputDialog?

Если нет, является ли самая простая рекомендация для подкласса QPlainTextEdit?

Ответы [ 2 ]

1 голос
/ 09 марта 2012

QInputDialog и, точнее, getText работают только с QLineEdit.

Просто реализуйте небольшой подкласс диалога, который содержит QPlainTextEdit. Не должно быть слишком много работы. Не так быстро, как QInputDialog, но не слишком много усилий.

Обновление : начиная с версии Qt 5.2, QInputDialog имеет getMultiLineText .

0 голосов
/ 28 сентября 2018

Чтобы получить пользовательский ввод из QInputDialog :: getText () в расширяемую строку:

 bool ok;
 std::string* comment = new std::string;
 QString qComment = QInputDialog::getText(0,
         "<title_of_input_dialog_displayed_at_top>",
         "<label_of_input_field_displayed_at_left>",
         QLineEdit::Normal, "<enter_this_or_that_here>", &ok);
 if (ok && !qComment.isEmpty()) {
    QByteArray qba = qComment.toLocal8Bit();
    comment->assign(qba.data(), qba.size());
 } else if (ok) { // user clicked Ok but did not enter text
    comment->assign("<default_user_input>");
 } else { // user clicked Cancel
   ...
 }
 delete comment;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...