// studentdenglu.h
#ifndef STUDENTDENGLU_H
#define STUDENTDENGLU_H
#include <QWidget>
#include <QFileDialog>
QT_BEGIN_NAMESPACE
namespace Ui {
class studentdenglu;
}
QT_END_NAMESPACE
class studentdenglu : public QWidget
{
Q_OBJECT
public:
studentdenglu(QWidget *parent = nullptr);
~studentdenglu();
QString getFileContent(const QString& filePath);
private slots:
void on_pushButton_clicked();
private:
Ui::studentdenglu *ui;
};
#endif // STUDENTDENGLU_H
// studentdenglu.cpp
#include "studentdenglu.h"
#include "ui_studentdenglu.h"
#include <QFile>
#include <QMessageBox>
studentdenglu::studentdenglu(QWidget *parent)
: QWidget(parent), ui(new Ui::studentdenglu)
{
ui->setupUi(this);
}
studentdenglu::~studentdenglu()
{
delete ui;
}
QString studentdenglu::getFileContent(const QString& filePath)
{
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly))
{
QMessageBox::critical(this, "Error", "Failed to open file");
return "";
}
QByteArray content = file.readAll();
file.close();
return QString(content);
}
void studentdenglu::on_pushButton_clicked()
{
QString filePath = QFileDialog::getOpenFileName(this, "打开文件", "C:\\study\\shixi\\stums 1\\message.txt.txt");
QString fileContent = getFileContent(filePath);
if (!fileContent.isEmpty())
{
// Assuming NextUI is the next UI class
NextUI* nextUi = new NextUI(fileContent, this);
nextUi->show();
}
}
// NextUI.h
#ifndef NEXTUI_H
#define NEXTUI_H
#include <QWidget>
#include <QTextEdit>
class NextUI : public QWidget
{
Q_OBJECT
public:
explicit NextUI(const QString& fileContent, QWidget* parent = nullptr);
private:
QTextEdit* textEdit;
};
#endif // NEXTUI_H
// NextUI.cpp
#include "nextui.h"
NextUI::NextUI(const QString& fileContent, QWidget* parent) : QWidget(parent)
{
textEdit = new QTextEdit(this);
textEdit->setPlainText(fileContent);
// ... Set other properties and layouts for the TextEdit
}
可以把字符串传给下一个ui,让它自己加载
也可以把 textEdit 暴露成 public 的成员,你现在是 private 的,不能直接在前一个 ui 访问
作用:可以显示文本,也可以编辑
方法:setText(你要显示的内容)
QString QTextEdit::toPlainText() const //返回文本编辑框中所有的内容