LINUX.ORG.RU

История изменений

Исправление false, (текущая версия) :

В исходниках Qt следующее:

QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label,
                              QLineEdit::EchoMode mode, const QString &text, bool *ok,
                              Qt::WindowFlags flags)
{
    QInputDialog dialog(parent, flags);
    dialog.setWindowTitle(title);
    dialog.setLabelText(label);
    dialog.setTextValue(text);
    dialog.setTextEchoMode(mode);

    int ret = dialog.exec();
    if (ok)
        *ok = !!ret;
    if (ret) {
        return dialog.textValue();
    } else {
        return QString();
    }
}

Функция статическая, все твои потуги она игнорирует. Если тебе так сильно нужно руками выставить размер, нужно самому создать экземпляр, что ты и сделал, но потом вручную выставить размеры, текст, и прочее; затем вызвать exec(), типа такого:

  int dialogWidth = 1350;
  
  QInputDialog inputDialog;
  
  inputDialog.setMinimumWidth(dialogWidth);
  inputDialog.resize(inputDialog.size());
  inputDialog.setWindowTitle("test");
  inputDialog.setLabelText("label");
  inputDialog.setTextValue("text");
  inputDialog.setTextEchoMode(QLineEdit::Normal);
  bool ok = !!inputDialog.exec();
  if (ok)
     return inputDialog.textValue();
  else
     return QString();

У меня работает.

Исходная версия false, :

В исходниках Qt следующее:

QString QInputDialog::getText(QWidget *parent, const QString &title, const QString &label,
                              QLineEdit::EchoMode mode, const QString &text, bool *ok,
                              Qt::WindowFlags flags)
{
    QInputDialog dialog(parent, flags);
    dialog.setWindowTitle(title);
    dialog.setLabelText(label);
    dialog.setTextValue(text);
    dialog.setTextEchoMode(mode);

    int ret = dialog.exec();
    if (ok)
        *ok = !!ret;
    if (ret) {
        return dialog.textValue();
    } else {
        return QString();
    }
}

Функция статическая, все твои потуги она игнорирует. Если тебе так сильно нужно руками выставить размер, нужно самому создать экземпляр, что ты и сделал, но потом вручную выставить размеры, текст, и прочее; затем вызвать exec(), типа такого:

  int dialogWidth = 1350;
  
  QInputDialog inputDialog;
  
  inputDialog.setMinimumWidth(dialogWidth);
  inputDialog.resize(inputDialog.size());
  inputDialog.setWindowTitle("test");
  inputDialog.setLabelText("label");
  inputDialog.setTextValue("text");
  inputDialog.setTextEchoMode(QLineEdit::Normal);
  bool ok = !!inputDialog.exec();

У меня работает.