当前位置: 首页> 财经> 访谈 > 移动端ui_南京小程序设计公司_平面设计主要做什么_seo外包公司一般费用是多少

移动端ui_南京小程序设计公司_平面设计主要做什么_seo外包公司一般费用是多少

时间:2025/7/10 1:08:33来源:https://blog.csdn.net/qq_53627084/article/details/146084511 浏览次数:1次
移动端ui_南京小程序设计公司_平面设计主要做什么_seo外包公司一般费用是多少

作业

代码

MyQThread.h

class MyThread : public QThread
{Q_OBJECT
public:MyThread(QObject *parent = nullptr);
protected:void run() override;
signals://向ui界面发送的 "复制进度" 的信号void copy_process_signal(int index);    
public slots:// "复制"信号的槽void do_copyfile_slots(QString oldfilename,QString newfilename);
private:QString oldfilename;QString newfilename;bool start_copy_flag=0;
};#endif // MYTHREAD_H

MyQThread.cpp

MyThread::MyThread(QObject *parent):QThread(parent)
{}// "槽"
void MyThread::do_copyfile_slots(QString oldfilename,QString newfilename)
{//进入此函数,说明ui界面拖入了文件,需要进行文件复制this->oldfilename=oldfilename;  //源文件路径this->newfilename=newfilename;  //目标文件路径start_copy_flag=1;  //打开标志位
}void MyThread::run()
{qDebug() << "子进程进入run函数";while(1){if(start_copy_flag){;//文件复制(准备阶段)QFile old_file(oldfilename);      //拆功能键QFile对象QFile new_file(newfilename);old_file.open(QIODevice::ReadOnly);    //打开文件new_file.open(QIODevice::WriteOnly);char data[4096];qint64 filesize = old_file.size();     //文件总大小qint64 readsize=0;                     //已读大小int index_backup=0;                    //任务进度//文件复制(执行阶段)while(1){//读取数据qint64 real_read__size = old_file.read(data,4096);//判断是否读完if(real_read__size == 0){break;}        //读取到的字节数为0 说明读取完毕,退出//计算"处理进度"readsize+=real_read__size;              //已经读取的字节总数int index =readsize * 100 / filesize;   //"处理进度"//告知ui界面 当前“处理进度”if(index - index_backup > 1)    //仅当"处理进度"发生变化x时{copy_process_signal(index); //才发出信号,让ui重新回执进度qDebug() << "复制进度" << index << " 读取总字节" << readsize << " 文件总大小" << filesize;}//写入数据new_file.write(data,real_read__size);}copy_process_signal(100);         //运行到此说明复制完毕,手动将进度设置为100old_file.close();new_file.close();qDebug() << "复制完毕";start_copy_flag = 0;    //关闭标志位}}exec(); // 启动事件循环
}

Widget.h

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECT
public:Widget(QWidget *parent = nullptr);~Widget();void dropEvent(QDropEvent *event) override;             //释放void dragEnterEvent(QDragEnterEvent *event) override;   //进入
private slots:void update_copy_process(int index);
signals:void copyfile_signal(QString oldfilename,QString newfilename);
private:Ui::Widget *ui;
};
#endif // WIDGET_H

Widget.cpp

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setAcceptDrops(1);    //设置允许拖拽MyThread* thread = new MyThread(this);// "复制文件"QObject::connect(this,&Widget::copyfile_signal,thread,&MyThread::do_copyfile_slots);// "任务进度"QObject::connect(thread,&MyThread::copy_process_signal,this,&Widget::update_copy_process);//滑块相关设置QString qss = "QSlider::sub-page{background-color:blue} QSlider::groove:horizontal{background-color:white}";ui->slider->setStyleSheet(qss);thread->start();
}Widget::~Widget()
{delete ui;
}//拖入
void Widget::dragEnterEvent(QDragEnterEvent *event)
{event->acceptProposedAction();  //接收拖入
}//释放
void Widget::dropEvent(QDropEvent *event)
{//从事件中解析文件名const QMimeData* mData = event->mimeData();      //获取其中mimeDataQList<QUrl> urls_list = mData->urls();           //转为urls_list 文件信息村饭到这个容器中QUrl url = urls_list[0];                         //读取容器中第一条数据QString oldfilename = url.toLocalFile();         //url 转 "文件名"//从对话框中获取文件名QString newfilename = QFileDialog::getSaveFileName(this,"保存文件","E:\\DAY5","AllFiles (*);;Images (*.png *.xpm *.jpg)");//数据部分,交由进程处理copyfile_signal(oldfilename,newfilename);
}//槽函数(子进程任务进度 信号)
void Widget::update_copy_process(int index)
{//设置进度条ui->slider->setValue(index);
}

效果

关键字:移动端ui_南京小程序设计公司_平面设计主要做什么_seo外包公司一般费用是多少

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: