33,315
社区成员
发帖
与我相关
我的任务
分享//获取用户桌面路径
QString desktopPath = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QFileDialog *fDialog = new QFileDialog(this);
fDialog->setAcceptMode(QFileDialog::AcceptOpen);
fDialog->setWindowTitle("请选择关键词文本文件");
fDialog->setDirectory(desktopPath);
fDialog->setNameFilter("文档词库(*.txt)");
fDialog->setFileMode(QFileDialog::ExistingFile);
fDialog->setViewMode(QFileDialog::List);
int openStatus = fDialog->exec();
if(openStatus == 1){
//获取到用户选择的词库文件路径
QString keywordpath = fDialog->selectedFiles()[0];
QFile file(keywordpath);
bool fileOpenStatus = file.open(QIODevice::ReadOnly | QIODevice::Text);
if(fileOpenStatus == true){
QTextStream text(&file);
text.setCodec("UTF-8");
//插入库的行位置
int RowLocation = 0;
while(text.atEnd() == false){
RowLocation ++;
QString line = text.readLine();
//导入到关键词库
if(arg == 1){
ui->tableWidget_keyword->setRowCount(RowLocation);
QTableWidgetItem *word = new QTableWidgetItem(line);
ui->tableWidget_keyword->setItem(RowLocation - 1,0,word);
ui->formGroupBox_keyeord->setTitle(QString("关键词库 %1/条").arg(RowLocation));
}else if(arg == 2){
ui->tableWidget_description->setRowCount(RowLocation);
QTableWidgetItem *description = new QTableWidgetItem(line);
ui->tableWidget_description->setItem(RowLocation - 1,0,description);
ui->formGroupBox_description->setTitle(QString("描述词库 %1/条").arg(RowLocation));
}else if(arg == 3){
ui->tableWidget_search->setRowCount(RowLocation);
QTableWidgetItem *search = new QTableWidgetItem(line);
ui->tableWidget_search->setItem(RowLocation - 1,0,search);
ui->gridGroupBox_search->setTitle(QString("内容词库 %1/条").arg(RowLocation));
}else if(arg == 4){
ui->tableWidget_videos->setRowCount(RowLocation);
QTableWidgetItem *videoAddress = new QTableWidgetItem(line);
ui->tableWidget_videos->setItem(RowLocation - 1, 0, videoAddress);
ui->gridGroupBox_video->setTitle(QString("搜索词库 %1/条").arg(RowLocation));
}
//防止界面假死
//QApplication::processEvents();
}
file.close();
}else{
//打开文本文档失败
}
}
if(arg == 1){
if(ui->tableWidget_keyword->rowCount() != 0){
//记录关键词库的数量 and 计算生成需要的文件名数量
wordCount.wordCount = ui->tableWidget_keyword->rowCount();
int y = htmlQueryWordCount("关键词");
//计算按关键字数量计算数量
int num = wordCount.wordCount / y;
ui->spinBox_number->setValue(num);
//按计算数量来生成文件名
for(int x = 0; x < ui->spinBox_number->value(); x ++){
ui->tableWidget_files->setRowCount(x+1);
QString key = getRandomString(9);
QTableWidgetItem *keys = new QTableWidgetItem(key);
ui->tableWidget_files->setItem(x,0,keys);
ui->gridGroupBox_files->setTitle(QString("生成文件名 %1/条").arg(x + 1));
}
}
}
fDialog->close();
fDialog = nullptr;
delete fDialog;