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

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

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

Стоит ли реализовывать вручную? Или как это сделать правильно?


person Dmitry Frank    schedule 27.12.2013    source источник


Ответы (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));
    }
}
person lpapp    schedule 27.12.2013
comment
Спасибо, я просто хотел убедиться, что не собираюсь изобретать колесо заново. - person Dmitry Frank; 27.12.2013
comment
Это не использует QLineEdit, хотя, как попросил OP, поэтому текст (путь к папке) не доступен для просмотра и редактирования, или это так? - person Ela782; 30.12.2018