QtCreator GUI打开文本文件

QtCreator GUI打开文本文件,qt,parsing,user-interface,Qt,Parsing,User Interface,我做了一个按钮,可以浏览并获取文本文件。但是我需要在一个新窗口中打开它来检查文本文件的内容是否正确。我该怎么做 另外,我希望在按钮旁边有一行编辑,显示我正在查看的文件。换句话说,通过按钮打开的文件的目录 目前,我所拥有的是: void MainWindow::on_fileButton_clicked() { QString fileName1 = QFileDialog::getOpenFileName(this,tr("Open Text File"), "", tr("Text

我做了一个按钮,可以浏览并获取文本文件。但是我需要在一个新窗口中打开它来检查文本文件的内容是否正确。我该怎么做

另外,我希望在按钮旁边有一行编辑,显示我正在查看的文件。换句话说,通过按钮打开的文件的目录

目前,我所拥有的是:

void MainWindow::on_fileButton_clicked()
{
     QString fileName1 = QFileDialog::getOpenFileName(this,tr("Open Text File"), "", tr("Text Files (*.txt)"));
     QFile file1(fileName1);
     if(!file1.open(QIODevice::ReadOnly | QIODevice::Text))
         return;

     QTextStream in(&file1);
     while(!in.atEnd()){
         QString line = in.readLine();
     }
}

您应该通过添加对话框或主窗口来创建新窗口。之后,在新对话框中添加textEdit等小部件

您需要学习Qt框架的一些基础知识: 有很好的Qt文档,你可以使用它。
还有大约。

您应该通过添加对话框或主窗口来创建一个新窗口。之后,在新对话框中添加textEdit等小部件

您需要学习Qt框架的一些基础知识: 有很好的Qt文档,你可以使用它。
还有大约。

我建议使用一个功能强大的文本界面:

void MainWindow::openfile() {
    QString fileName1 = QFileDialog::getOpenFileName(this,tr("Open Text File"), "", tr("Text Files (*.txt)"));
    QFile file1(fileName1);
    if(!file1.open(QIODevice::ReadOnly | QIODevice::Text))
        return;

    // show the directory path of opened file
    dir->setText(QFileInfo(file1).dir().path());

    QTextBrowser *b = new QTextBrowser;
    b->setText(file1.readAll());
    b->show();
}
dir是一个成员变量,在构造函数中用

dir = new QLineEdit(this);

我建议使用一个功能强大的文本界面:

void MainWindow::openfile() {
    QString fileName1 = QFileDialog::getOpenFileName(this,tr("Open Text File"), "", tr("Text Files (*.txt)"));
    QFile file1(fileName1);
    if(!file1.open(QIODevice::ReadOnly | QIODevice::Text))
        return;

    // show the directory path of opened file
    dir->setText(QFileInfo(file1).dir().path());

    QTextBrowser *b = new QTextBrowser;
    b->setText(file1.readAll());
    b->show();
}
dir是一个成员变量,在构造函数中用

dir = new QLineEdit(this);

嘿上面的代码将错误作为错误:“dir”未在此范围内声明,如何解决it@Latik:可以声明
QLineEdit*dir并在构造函数中分配它
MainWindow(…){dir=newqlineedit(this);}
hey。。上面的代码将错误作为错误:“dir”未在此范围内声明,如何解决it@Latik:可以声明
QLineEdit*dir并在构造函数中分配它(…){dir=new QLineEdit(this);}
表示我们无法打开文本文件,但可以将txt文件的内容加载到文本编辑。表示我们无法打开文本文件,但可以将txt文件的内容加载到文本编辑。