Qt: добавьте поле выбора файла в форме (кнопка QLineEdit и "просмотр" )

Мне нужно отобразить QLineEdit с кнопкой "Обзор" в моей форме. Когда пользователь нажимает кнопку, QFileDialog должен быть открыт и т.д.

Это довольно обычная вещь, но я не могу найти готовое решение для этого. Я ожидал в Qt Designer какого-то виджета, такого как QFileSelect, или что-то в этом роде, но ничего подобного не нашел.

Должен ли я реализовать его вручную? Или, каков правильный способ сделать это?

Ответы

Ответ 1

Должен ли я реализовать его вручную? Или, каков правильный способ сделать это?

Да, я согласен с вами в том, что это обычная вещь, но, к сожалению, вам нужно будет реализовать это самостоятельно. Хорошей новостью является то, что вы можете сделать это легко следующим образом:

MyMainWindow::createUI()
{
    label = new QLabel("foo");
    button = new QPushButton("Browse");
    connect(button, SIGNAL(clicked()), SLOT(browse()));
    layout = new QHorizontalLayout();
    layout->addWidget(label);
    layout->addWidget(button);
    setLayout(layout);
}

void MyMainWindow::browse()
{
    QString directory = QFileDialog::getExistingDirectory(this,
                            tr("Find Files"), QDir::currentPath());

    if (!directory.isEmpty()) {
        if (directoryComboBox->findText(directory) == -1)
            directoryComboBox->addItem(directory);
        directoryComboBox->setCurrentIndex(directoryComboBox->findText(directory));
    }
}