QT5两个按钮,一个选择文件,另一个按钮逐行输入文件内的内容
时间: 2024-04-10 10:33:37 浏览: 85
QT 文件读取和写入
4星 · 用户满意度95%
您可以使用Qt的QFileDialog类来创建一个选择文件的按钮,然后使用QFile类来读取文件内容并逐行输入。下面是一个示例代码:
```cpp
#include <QtWidgets>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr)
: QWidget(parent)
{
// 创建选择文件的按钮
selectButton = new QPushButton("选择文件", this);
connect(selectButton, &QPushButton::clicked, this, &MyWidget::selectFile);
// 创建逐行输入文件内容的按钮
inputButton = new QPushButton("逐行输入文件内容", this);
connect(inputButton, &QPushButton::clicked, this, &MyWidget::inputFileContents);
// 创建文本框用于显示文件内容
textEdit = new QTextEdit(this);
// 设置布局
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(selectButton);
layout->addWidget(inputButton);
layout->addWidget(textEdit);
setLayout(layout);
}
private slots:
void selectFile()
{
// 打开文件选择对话框
QString filePath = QFileDialog::getOpenFileName(this, "选择文件");
if (!filePath.isEmpty()) {
// 保存选中的文件路径
selectedFilePath = filePath;
}
}
void inputFileContents()
{
if (selectedFilePath.isEmpty()) {
// 如果没有选中文件,则提示用户先选择文件
QMessageBox::information(this, "提示", "请先选择文件");
return;
}
// 逐行读取文件内容并输入到文本框中
QFile file(selectedFilePath);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
textEdit->append(line);
}
file.close();
}
}
private:
QPushButton *selectButton;
QPushButton *inputButton;
QTextEdit *textEdit;
QString selectedFilePath;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
#include "main.moc"
```
这个示例代码创建了一个窗口,其中包含一个选择文件的按钮和一个逐行输入文件内容的按钮。当用户点击选择文件的按钮时,会弹出文件选择对话框,用户可以选择一个文件。当用户点击逐行输入文件内容的按钮时,程序会读取选中的文件并逐行输入到文本框中。
请注意,这只是一个简单的示例代码,您可能需要根据您的实际需求进行适当的修改和扩展。
阅读全文