吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 984|回复: 17
收起左侧

[求助] 如下QT程序怎么没有效果?

[复制链接]
冥界3大法王 发表于 2023-5-4 23:00
本帖最后由 冥界3大法王 于 2023-5-4 23:01 编辑

如下QT程序怎么没有效果?没有加载到列表中呢?

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSettings>
#include <QString>
#include <QDebug>
#include <QDir>
#pragma execution_character_set("utf-8");
#include <QRegularExpression>
#include <QFile>







void MainWindow::on_LoadtxtToList_clicked()
{
    ui->listWidget->clear();




    QFile dataFile("c:\1.txt");
    if (dataFile.open(QFile::ReadOnly|QIODevice::Text))
    {
    QTextStream data(&dataFile);
    QStringList fonts;
    QString line;
    while (!data.atEnd())                       //逐行读取文本,并去除每行的回车
    line = data.readLine();
    line.remove('\n');
    ui->listWidget->addItems(fonts);            //把各行添加到listwidget
  }
}


免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
为之奈何? + 1 + 1 我很赞同!
hrh123 + 1 你没有把line添加到fonts列表中,所以ui-&amp;gt;listWidget-&amp;gt;addItems(fonts).

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hrh123 发表于 2023-5-4 23:12
你没有把line添加到fonts列表中,所以ui->listWidget->addItems(fonts)没有效果.你应该在while循环中使用fonts.append(line)或者fonts << line来把每一行的文本加入到列表中
 楼主| 冥界3大法王 发表于 2023-5-4 23:34
hrh123 发表于 2023-5-4 23:12
你没有把line添加到fonts列表中,所以ui->listWidget->addItems(fonts)没有效果.你应该在while循环中使用fon ...

网上粘来的,QT饭桶表示看不懂,天朝不少都是英文盲流弄得代码不少粘错,就是前后少东西。确实太菜了。。。。
 楼主| 冥界3大法王 发表于 2023-5-4 23:39
@hrh123
不会改,受累修改个完整不报错的代码吧,谢谢。
Eaglecad 发表于 2023-5-5 07:21
上面都有一个大前提就怕while的花括号必须带上,要不然仅仅生效其后一句。
其次是fonts应该需要把line内容追加进去。

[Asm] 纯文本查看 复制代码
if (dataFile.open(QFile::ReadOnly|QIODevice::Text))
    {
    QTextStream data(&dataFile);
    QStringList fonts;
    QString line;
    while (!data.atEnd()) {                      //逐行读取文本,并去除每行的回车
    line = data.readLine();
    line.remove('\n');
    fonts.append(line);
  }
    ui->listWidget->addItems(fonts);            //把各行添加到listwidget
  }
fengdaokanhai 发表于 2023-5-5 07:37
Eaglecad 发表于 2023-5-5 07:21
上面都有一个大前提就怕while的花括号必须带上,要不然仅仅生效其后一句。
其次是fonts应该需要把line内容 ...

赞一个!!
236A 发表于 2023-5-5 07:43
本帖最后由 236A 于 2023-5-5 07:51 编辑

少了个花括号 编译器不报错的吗
QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)要去空格因该拿他的返回值  line.remove('\n') 不会改变line的值
 楼主| 冥界3大法王 发表于 2023-5-5 07:59
Eaglecad 发表于 2023-5-5 07:21
上面都有一个大前提就怕while的花括号必须带上,要不然仅仅生效其后一句。
其次是fonts应该需要把line内容 ...

不 行啊,哥们,还是没有动静呢,没有报错同时。
[C++] 纯文本查看 复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSettings>
#include <QString>
#include <QDebug>
#include <QDir>
#pragma execution_character_set("utf-8");
#include <QRegularExpression>
#include <QFile>
#include <QTextStream>




MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()   //读取INI,设置到Edit1 2 3 控件上!
{
    QSettings *configIniRead = new QSettings("config.ini", QSettings::IniFormat);
    //将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
    QString jianzhi = configIniRead->value("/ip/first").toString();
    ui->Edit3->setText(jianzhi);

    //    QString portResult = configIniRead->value("/port/open").toString();
    //    ui->Edit2->setText(portResult);




    //  qDebug() << ipResult;  //打印得到的结果
    //  qDebug() << portResult;
    //读入入完成后删除指针
    delete configIniRead;

    //获取应用程序可执行文件所在的目录
    qDebug()<<"current applicationDirPath: "<<QCoreApplication::applicationDirPath();


    QString strPath = QCoreApplication::applicationDirPath();
    QDir dir(strPath);
    bool bSuccess = dir.cdUp();
    if (bSuccess == true) {
        strPath = dir.path() + "/";
    }
    qDebug()<<"上一级目录是:"<<strPath;
}





void MainWindow::on_InsertNewItem_clicked()//插入新项到列表中OK了!
{
    QListWidgetItem * aItem= new QListWidgetItem("CC");
    ui->listWidget->insertItem(ui->listWidget->currentRow(),aItem);
}




void MainWindow::on_LoadtxtToList_clicked()
{
    ui->listWidget->clear();


    QFile dataFile("c:\1.txt");
    if (dataFile.open(QFile::ReadOnly|QIODevice::Text))
        {
        QTextStream data(&dataFile);
        QStringList fonts;
        QString line;
        while (!data.atEnd()) {                      //逐行读取文本,并去除每行的回车
        line = data.readLine();
        line.remove('\n');
        fonts.append(line);
      }
        ui->listWidget->addItems(fonts);            //把各行添加到listwidget
      }



        //    QFile file("c:\1.txt");
        //        if (file.open(QIODevice::ReadOnly | QIODevice::Text))
        //        {
        //            while (!file.atEnd())
        //            {
        //                QByteArray line = file.readLine();
        //                QString str(line);

        //               QRegularExpression re("(?<=^\\[).*(?=\\])");
        //                QRegularExpression re("(?<=NoteName=).*");
        //              QRegularExpressionMatch match = re.match(str);
        //                  if (match.hasMatch())
        //                  {
        //                      QString matched = match.captured(0);
        //                      ui->comboBox->addItem(matched);
        //                  }

        //      QListWidgetItem * aItem= new QListWidgetItem(str);
        //       ui->listWidget->insertItem(ui->listWidget->currentRow(),aItem);
    }
    //            file.close();




forever96 发表于 2023-5-5 09:19
大佬咋不搞delphi了,这玩意还能深入不
淡淡灰黑色J 发表于 2023-5-5 09:28
void MainWindow::on_btn_load_clicked()
{
    ui->listWidget->clear();

    QFile file("D:\\1.txt");//文件位置自己改
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
        return;

    while (!file.atEnd()) {
        QString line = file.readLine();             //逐行读取文本,并去除每行的回车
        line.remove('\n');
        ui->listWidget->addItem(line);              //把各行添加到listwidget
    }
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表