qt按下toolbutton 打开文件显示在lineEdit上代码
时间: 2024-12-19 14:26:55 浏览: 7
在Qt中,你可以使用`QFileDialog`来打开文件选择,并将选中的文件路径显示在`QLineEdit`控件上。当用户点击`QToolButton`时,可以触发这个操作。以下是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QMainWindow>
#include <QToolButton>
#include <QFileDialog>
#include <QLineEdit>
class MainWindow : public QMainWindow {
Q_OBJECT
public slots:
void openFile() {
QString filePath = QFileDialog::getOpenFileName(
this, // 指定窗口作为父窗口
tr("Open File"), // 文件选择对话框标题
"", // 默认开始目录
tr("All Files (*)") // 显示的文件过滤器
);
if (!filePath.isEmpty()) { // 如果选择了文件
ui->lineEdit->setText(filePath); // 将文件路径设置到LineEdit上
}
}
private:
QLineEdit *ui_lineEdit; // 线编辑控件指针
QToolButton *ui_toolButton; // 工具按钮指针
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
// 创建UI元素并连接信号槽
ui_lineEdit = new QLineEdit(this);
ui_toolButton = new QToolButton(this);
ui_toolButton->setText("Open");
ui_toolButton->setIcon(QIcon(":/icons/open")); // 设置图标,假设你有对应的资源文件
connect(ui_toolButton, &QToolButton::clicked, this, &MainWindow::openFile);
// 添加控件布局
// ... (添加按钮到适当布局)
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
在这个例子中,我们创建了一个`QMainWindow`,里面包含一个`QLineEdit`和一个`QToolButton`。当工具按钮被点击时,会触发`openFile`槽函数,通过`QFileDialog`打开文件选择对话框。如果用户选择了文件,则将文件路径显示在`lineEdit`中。
阅读全文