使用QT界面进行onetnet数据上传与下载

上篇已经讲述了onenet基于TCP通信协议的socket编程,接下来将会向大家介绍如何编辑一个QT界面
实现数据的上传和下载,顺带介绍一个登陆界面的的制作过程。
过程分析:上篇我们使用的是c语言编写的客户端程序,有人会说,QT是一个基于c++语言的开发工具
如何实现在QT中引用已经实现的客户端程序呢?难道是将程序全部加载到指定的QT项目中?
分析如下:
首先我们都知道QT是基于c++的一门开发工具,c++呢本质又是和c一脉相承。所以在c++中 使用c原理上是可以实现的,其实很多很开始有误区,将c程序全部加载到指定的QT项目中。大家可以试想一下,大规模的函数如何加载,这会极大的增加函数的风险,减少函数的容错性。所以c++(QT) 中特意使用了一个进程创建用于调用已经完成的c函数的可执行程序。通过操作c可执行程序完成c与c++ 的完美结合,从而增加函数的封装性,提高函数的容错性。具体执行如下:

  QProcess *process=new QProcess();
    if(i==false){
    ui->pushButton->setText("链接");
    i=true;
    qDebug()<<"开始链接";
    process->start("./post",str);
    /*post就是用c编写的socket程序,str指的是将QT界面输入
    的数据加载到可执行程序后面*/
    process->waitForStarted();
    process->waitForFinished();
    QByteArray qb=process->readAll();
    QString str22(qb);
    ui->listWidget->addItem(str22);   

接下来向大家介绍一下常用QT界面的背景添加以及美化:

void  surfDialog::paintEvent(QPaintEvent *){
  //加载图片
   QPixmap pixmap = QPixmap(":/tutu/mm.jpg").scaled(this->size());
   QPainter painter(this);
   painter.drawPixmap(this->rect(), pixmap);
  //字体颜色设置
   QPalette pa;
   pa.setColor(QPalette::WindowText,Qt::white);
   ui->label->setPalette(pa);
   ui->label_2->setPalette(pa);
  //字体大小设置
   QFont ft;
   ft.setPointSize(12);
   ui->label->setFont(ft);
   ui->label_2->setFont(ft);
}
发布了34 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xuxudeta/article/details/78197055