Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:在表单上添加文件选择字段(QLineEdit和“浏览”按钮)_C++_Qt_Qt Designer_Qtgui_Qfiledialog - Fatal编程技术网

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

C++ Qt:在表单上添加文件选择字段(QLineEdit和“浏览”按钮),c++,qt,qt-designer,qtgui,qfiledialog,C++,Qt,Qt Designer,Qtgui,Qfiledialog,我需要在我的表单上用“浏览”按钮显示QLineEdit。当用户单击按钮时,应打开QFileDialog,依此类推 这是很常见的事情,但我找不到现成的解决方案。我期望在Qt Designer中有一些小部件,比如QFileSelect,或者类似的东西,但没有发现类似的东西 我应该手动执行吗?或者,正确的方法是什么 我应该手动执行吗?或者,正确的方法是什么 是的,我同意你的观点,这是一件普通的事情,但不幸的是,你需要自己来实现这一点。好消息是,您可以通过以下方式轻松做到这一点: MyMainWindo

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

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

我应该手动执行吗?或者,正确的方法是什么

我应该手动执行吗?或者,正确的方法是什么

是的,我同意你的观点,这是一件普通的事情,但不幸的是,你需要自己来实现这一点。好消息是,您可以通过以下方式轻松做到这一点:

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

谢谢,我只是想确保我不会再发明轮子。这不是按照OP的要求使用
QLineEdit
,所以文本(文件夹路径)不可查看和编辑,或者是?