Qt:在表单上添加文件选择字段(QLineEdit和“浏览”按钮)

时间:2013-12-27 04:32:13

标签: c++ qt qt-designer qtgui qfiledialog

我需要在我的表单中使用“浏览”按钮显示QLineEdit。当用户单击按钮时,应打开QFileDialog,依此类推。

这很常见,但我找不到现成的解决方案。我期望在Qt Designer中有一些像QFileSelect这样的小部件,或类似的东西,但没有发现类似的东西。

我应该手工实施吗?或者,这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:15)

  

我应该手工实施吗?或者,这样做的正确方法是什么?

是的,我同意你的观点,这是很常见的事情,但不幸的是你需要自己实现。好消息是,您可以通过以下方式轻松完成此任务:

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));
    }
}