开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 142

撸码小分队/DS

forked from Vanishi/DS
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (2)
标签 (4)
master
V1.0
DS.v1.7.x64.2023年04月16日
DS.v1.6.x64.2023年04月13日
DS.v1.5.x64.2023年04月08日
DS.v1.0.x64.2023年03月18日
master
分支 (2)
标签 (4)
master
V1.0
DS.v1.7.x64.2023年04月16日
DS.v1.6.x64.2023年04月13日
DS.v1.5.x64.2023年04月08日
DS.v1.0.x64.2023年03月18日
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (2)
标签 (4)
master
V1.0
DS.v1.7.x64.2023年04月16日
DS.v1.6.x64.2023年04月13日
DS.v1.5.x64.2023年04月08日
DS.v1.0.x64.2023年03月18日
DS
/
Task
/
Task.cpp
DS
/
Task
/
Task.cpp
Task.cpp 5.91 KB
一键复制 编辑 原始数据 按行查看 历史
#include "Task.h"
#include "TaskDo.h"
#include "TaskSettings.h"
#include "style.h"
#include "Utils/models.h"
#include "Utils/database.h"
#include "Utils/ComMessageBox.h"
#include "Utils/ComLineWidget.h"
#include <QStyledItemDelegate>
#include <QVBoxLayout>
#include <QStackedWidget>
#include <QComboBox>
#include <QPushButton>
#include <QGridLayout>
#include <QTextEdit>
#include <QLabel>
#include <QTimer>
#include <QsLog.h>
Task::Task(QWidget *parent,MTask *task) : QWidget(parent),mTask(task)
{
QLOG_INFO() << "Task::Task()";
setAttribute(Qt::WA_StyledBackground,true);
setStyleSheet(QString(".Task{background-color:%1;}").arg(m_rgb_basic));
QVBoxLayout *boxLayout = new QVBoxLayout(this);
boxLayout->setContentsMargins(0,2,0,0);
boxLayout->setSpacing(0);
boxLayout->addWidget(new ComLineWidget(this));
stackedWidget = new QStackedWidget(this);
boxLayout->addWidget(stackedWidget);
if(mTask->type == MTask::TASKTYPE::ADD){
// 生成任务
initAddView();
QTimer::singleShot(50,this,[this](){
initAddViewDo();
initSettings();
});
stackedWidget->setCurrentWidget(addView);
}else{
// 编辑任务
initAddViewDo();
stackedWidget->setCurrentWidget(mTaskDo);
QTimer::singleShot(50,this,[this](){
initAddView();
initSettings();
mTaskDo->startLoad();
});
}
}
Task::~Task(){
QLOG_INFO() << "Task::~Task()";
delete mTask;
mTask = nullptr;
}
void Task::initSettings(){
mSettings = new TaskSettings(stackedWidget,mTask);
connect(mSettings,&TaskSettings::notifyBack,this,[this](){
stackedWidget->setCurrentWidget(mTaskDo);
});
stackedWidget->addWidget(mSettings);
}
void Task::initAddViewDo(){
mTaskDo = new TaskDo(stackedWidget,mTask);
connect(mTaskDo, &TaskDo::notifyChangeTabName,this,&Task::notifyChangeTabName);
connect(mTaskDo, &TaskDo::notifyChangeTabIcon,this,&Task::notifyChangeTabIcon);
connect(mTaskDo,&TaskDo::notifySettings,this,[this](){
stackedWidget->setCurrentWidget(mSettings);
});
stackedWidget->addWidget(mTaskDo);
}
void Task::initAddView(){
addView = new QWidget(stackedWidget);
// 任务组
QLabel *groupLabel = new QLabel(addView);
groupLabel->setStyleSheet(m_stylesheet_QLabel14);
groupLabel->setText("任务组");
groupComboBox = new QComboBox(addView);
groupComboBox->setMaximumWidth(300);
groupComboBox->setMinimumHeight(35);
groupComboBox->setItemDelegate(new QStyledItemDelegate(groupComboBox));
groupComboBox->setStyleSheet(m_stylesheet_QComboBox);
mTaskGroups = Database::getInstance()->taskGroups;
for (int i = 0; i < mTaskGroups.length(); ++i) {
groupComboBox->addItem(mTaskGroups[i].name);
if(i==0){
m_currentGroupId = mTaskGroups[i].id;
}
}
connect(groupComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),[this](int index){
m_currentGroupId = mTaskGroups[index].id;
});
// 内容
QLabel *addressLabel = new QLabel(addView);
addressLabel->setStyleSheet(m_stylesheet_QLabel14);
addressLabel->setText("网址");
QTextEdit *addressText = new QTextEdit(addView);
addressText->setAcceptRichText(false);
addressText->setMaximumHeight(400);
addressText->setPlaceholderText("例如:http://www.any12345.com");
addressText->setStyleSheet(m_stylesheet_QTextEdit);
addressText->setFontFamily("Microsoft YaHei");
addressText->setText(mTask->addressList.join("\n")); // 设置默认值(可能存在携带过来的参数)
QPushButton *okBtn = new QPushButton(addView);
okBtn->setStyleSheet(m_stylesheet_QPushButton);
okBtn->setFixedSize(200,32);
okBtn->setCursor(Qt::PointingHandCursor);
okBtn->setText("保存");
connect(okBtn,&QPushButton::clicked,this,[this,addressText](){
if(mTaskDo!=nullptr){
QString value = addressText->toPlainText().trimmed();
if(value.length()>0){
value = value.replace(",","\n");// 替换掉英文逗号,后面会有使用
QStringList values = value.split("\n");
QStringList addressList;
for (int i = 0; i < values.length(); ++i) {
if(values[i].startsWith("http")){
addressList.append(values[i].trimmed());
}
}
if(addressList.length()>0){
mTask->groupId = m_currentGroupId;
mTask->addressList = addressList;
stackedWidget->setCurrentWidget(mTaskDo);
mTaskDo->startLoad();
}else {
ComMessageBox::error(this,"请输入至少一条有效网址");
}
}else{
ComMessageBox::error(this,"请输入网址");
}
}else {
ComMessageBox::error(this,"页面初始化中,请重试!");
}
});
// tip
QLabel *tipLabel = new QLabel(addView);
tipLabel->setText("注意:换行表示输入不同的网址");
tipLabel->setStyleSheet("QLabel{color:rgb(153,153,153);font-family:Microsoft YaHei;font-size:12px;}");
QGridLayout *gridLayout = new QGridLayout(addView);
gridLayout->setContentsMargins(20,20,20,0);
gridLayout->setSpacing(20);
// gridLayout->setColumnStretch(2,10);
gridLayout->addWidget(groupLabel,0,0);
gridLayout->addWidget(groupComboBox,0,1);
gridLayout->addWidget(addressLabel, 1, 0);
gridLayout->addWidget(addressText, 1, 1);
gridLayout->addWidget(tipLabel,2,1);
gridLayout->addWidget(okBtn,3,1);
gridLayout->setRowStretch(4,100);
stackedWidget->addWidget(addView);
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

一个Qt开发的可以替代爬虫的网页数据采集软件,它最重要的特点就是,降低了采集网页数据的门槛,由至少必须掌握一门编程语言降低到只要会操作电脑即可。
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/coderanks/DS.git
git@gitee.com:coderanks/DS.git
coderanks
DS
DS
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /