精华内容
下载资源
问答
  • QtSocket编程实例

    千次阅读 2014-02-25 17:03:36
    QtSocket编程实例 本文章所讲述的内容是关于Qt中Socket编程,对于socket,大家并不陌生,应用程序调用socket函数来创建一个能够进行网络通信的套接字。 SOCKET socket( int af, int ...

    Qt 中Socket编程实例


    本文章所讲述的内容是关于Qt中Socket编程,对于socket,大家并不陌生,应用程序调用socket函数来创建一个能够进行网络通信的套接字。


    SOCKET socket( int af, int type, int protocol ); 应用程序调用socket函数来创建一个能够进行网络通信的套接字。第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET; 第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据报以及协议首部);第三个参数指定应用程序所使用的通信协议。

    在LINUX下进行网络编程,我们可以使用LINUX提供的统一的套接字接口。但是这种方法牵涉到太多的结构体,比如IP地址,端口转换等,不熟练的人往往容易犯这样那样的错误。QT中提供的SOCKET完全使用了类的封装机制,使用户不需要接触底层的各种结构体操作。而且它采用QT本身的signal-slot机制,使编写的程序更容易理解。

    QT中共提供四个与套按字相关的类,分别是:

    1. QServerSocket:TCP-based server  
    2. QSocket:   Buffered TCP connection  
    3. QSocketDevice:  Platform-independent low-level socket API  
    4. QSocketNotifier: Support for socket callbacks 

    下面介绍使用QT进行网络编程,我们使用一个简单的C/S模式网络程序说明如何使用QT中的套接字。同时我们用TCP和UDP两种协议实现这个程序(该程序客户端与服务端各向对方发送一个字符口串“abc”)

    1、UDP实现

    UDP是不连接协议,没有客户端与服务端的概念。

    (1)建立套接字相关对象

    1. QSocketDevice *MUReceiveSocket;   //套接字对象  
    2. QSocketNotifier *MSocketNotifier;     //套接字监听对象 

    (2)初始化套接字相关对象

    1. MUReceiveSocket=new QSocketDevice(QSocketDevice::Datagram);    
    2. //UDP初始化  
    3. QHostAddress MyAddress;  
    4. QString FakeAddress;  
    5. FakeAddress = get_eth1_ip();  //取得接口IP  
    6. MyAddress.setAddress(FakeAddress);  
    7. MUReceiveSocket->bind(MyAddress,Port);    
    8. //绑定到指定网络接口地址(IP),指定逻辑端口  
    9. MSocketNotifier = new QSocketNotifier(MUReceiveSocket->socket(),QSocketNotifier::Read,0,"MSocketNotifier");  
    10. //监听MUReceiveSocket套接字 

    (3)定义用实现响应slot

    1. virtual void OnMReceive();  
    2. void Client::OnMReceive(){  
    3. int ByteCount,ReadCount;  
    4. char *IncommingChar;  
    5. fprintf(stderr,"Load a piece of Message!\n");  
    6. ByteCount=MUReceiveSocket->bytesAvailable();  
    7. IncommingChar=(char *)malloc(ByteCount+1);  
    8. ReadCount=MUReceiveSocket->readBlock(IncommingChar,ByteCount);  
    9. IncommingChar[ByteCount]='\0';  
    10. fprintf(stderr,“%s“,IncommingChar);  //打印接收的字符串  
    11.            } 

    (4)关联套接字的signal和接收slot

    1. connect(MSocketNotifier,SIGNAL(activated(int)),this,SLOT(OnMReceive()));  
    2. //当MSocketNotifier检测到MUReceiveSocket活跃时调用OnMReceive 

    (5)发送字符串

    1. char information[20];  
    2. strcpy(information,“abc“);  
    3. MUReceiveSocket->writeBlock(information,length,MyAddress,2201);  

    2、TCP实现

    TCP的实现与UDP的实现大同小异,它是面象连接的协议。这里只介绍与UDP不同的地方。

    服务端:

    (1)套接字对象的定义

    比UDP多定义一个套接字,一个用来监听端口,一个用来通信。
    建立一个QSSocket类继承QServerSocket

    1. QSSocket *ServerSocket;    //TCP-based server  
    2. QSocketDevice *ClientSocket;  
    3. QSocketNotifier *ClientNotifier;  
    4. QSocketNotifier *ServerNotifier; 

    (2)套接字的初始化

    1. QHostAddress MyAddress;  
    2. QString FakeAddress;  
    3. FakeAddress = "127.0.0.1";  
    4. MyAddress.setAddress(FakeAddress);  
    5. UINT Port=1234;  
    6. ServerSocket=new QSSocket(MyAddress,Port,this,0);   //指定监听地址及端口  
    7. //这里也可以使用QServerSocket类  
    8.  ClientSocket=new QSocketDevice(QSocketDevice::Stream);  
    9. ClienttNotifier = new QSocketNotifier(ClientSocket->socket(),QSocketNotifier::Read,0,"ClientSocket"); 

    (3)响应连接

    只需要在QSSocket的构造函数里添加如下代码:

    1. ServerSocket->newConncetion(ClientSocket->socket()); 

    当收到客户端的连接后,ClientSocket自动响应,并接收数据。

    (4)接收信息slot与UDP一致,这里不在叙述。

    客户端实现:

    客户端的实现与UDP实现大同小异,不同的地方只是客户端套接字不需要bind端口,因为连接上服务端后TCP会保持这个连接,直到通信的结束。

    小结:对于本篇文章实现Qt 中Socket编程,讲解到这,客户端和服务端的实现很important!实现套接字的网络通信。希望本文对你有帮助!!!

    http://mobile.51cto.com/symbian-268461.htm

    展开全文
  • Qt socket使用实例

    热门讨论 2012-06-12 22:05:49
    Qt:用socket实现网络编程,使用tcp协议;
  • ...比如说我在子线程的构造函数对其成员QTcpSocket进行了实例化,然后在其run()函数中进行操作; 运行时一般会出现如下信息: QObject: Cannot create children for a parent that is in a dif...

    http://blog.sina.com.cn/s/blog_640531380102y5rl.html

    • QTcpSocket不能跨线程访问

    比如说我在子线程的构造函数对其成员QTcpSocket进行了实例化,然后在其run()函数中进行操作;
    运行时一般会出现如下信息:
    QObject: Cannot create children for a parent that is in a different thread.
    (Parent is QNativeSocketEngine(0xadc00df0), parent*s thread is QThread(0x81c0298), current thread is QThread(0x806e000)

    (Parent is QTcpSocket(0x7a50f68), parent's thread is QThread(0x105d070), current thread is DevNetConnect(0x3ebfdf8)

    如果在构造函数中实例化了QTcpSocket,则该对象将属于调用该子线程的对象而非子线程本身;

    • 解决:

    不要在构造函数中实例化,而是在子线程的run()函数中实例化并操作,这样才属于子线程本身。

    展开全文
  • QT5 下udp 编程实例

    千次阅读 2015-12-05 15:53:56
    服务器不停的利用定时器来向socket发送广播消息,客户端可以接收该消息并显示。首先建立工程UdpServer.pro。建立各控件的布局。udpserver.h:class UdpServer:public QDialog { Q_OBJECT public: UdpServer(QWidget *...

    下面是一个简单的QT5下的udp通信的下例子。服务器不停的利用定时器来向socket发送广播消息,客户端可以接收该消息并显示。

    首先建立工程UdpServer.pro。建立各控件的布局。

    udpserver.h:
    
    class UdpServer:public QDialog
    {
    Q_OBJECT
    public:
    UdpServer(QWidget *parent=0,Qt::WindowFlags f=0);
    ~UdpServer();
    
    prvate:
    QLabel *TimerLabel;
    QLineEdit *TextLineEdit;
    QPushButton *StartBtn;
    QVBoxLayout *mainLayout;
    };
    
    udpserver.cpp
    
    UdpServer::UdpServer(QWidget *parent,Qt::WindowFlags f):QDialog(parent,f)
    {
    setWindowTitle(tr("UDP 服务器"));
    
    TimerLabel = new QLabel(tr("Timer:),this);
    TextLineEdit = new QLineEdit(this);
    StartBtn = new QPushButton(tr("Start"),this);
    
    mainLayout = new QVBoxLayout(this);
    mainLayout->addWidget(TimerLabel);
    mainLayout->addWidget(TextLineEdit);
    mainLayout->addWidget(StartBtn);
    
    }
    

    下面实现服务器的消息广播功能:
    在UdpServer.pro 中加入 :

    QT += network
    这样就可以支持网络开发了。

    在udpserver.h中添加想要的槽函数

    public slots:
    void StartBtnClicked();
    void timeout();
    
    privateint port;
    bool isStarted;
    QDdpSocket *udpSocket;
    QTimer *timer;
    

    在源文件udpserver.cpp的构造函数中添加如下代码

    conne(startBtn,SIGNAL(clicked()),this,SLOT(StartBtnClicked()));
    port = 5555;
    isStarted = false;
    UDPSocket = new QUdpSocket(this);//构建一个socket
    timer = new QTimer(this);//构建一个定时器
    connect(timer,SIGNAL(timeout()),this,SLOT(timeout()));
    

    槽函数实现:

    void UdpServer::StartBtnClicked()
    {
    if(!isStarted)
    {
    StartBtn->setText(tr("STOP");
    timer->start(1000);//启动定时器
    isStarted = true;
    }
    else
    {
    StartBtn->setText(tr("Start"));
    isStarted = false;
    timer->stop();
    }
    
    }

    timeout函数的实现广播消息:

    void Udpserver::timeout()
    {
    QString message = TextLineEdit->text();//获取要广播的消息文本
    int length = 0//文本长度置零
    if(message= “”)//如果输入的文本为空,就返回
    {
    return;
    }
    
    
    /*向指定的地址和端口写入数据报消息,如果写入的长度和输入的长度不同,程序返回*/
    if((length = UDPSocket->writeDatagram(message.toLatin1(),message.length(),QHOSTAddress::Broadcast,port))!=message.length())
    {
    return;
    }
    }

    *——————————————————————————————————————————————————————————————–

    下面udp客户端的实现。获取服务器广播的消息,并显示出来。
    首先建立工程 UdpClient.pro 建立各个控件的布局。
    udpclient.h:

    class UdpClient:public QDialog
    {
    Q_OBJECT
    public:
    UdpClient(QWidget *parent =0,Qt::WindowFlags f=0);
    ~UdpClient();
    
    private:
    QTextEdit *ReceiveTextEdit;
    QPushButton *CloseBtn;
    QVBoxLayout *mainLayout;
    
    };

    udpclient.cpp

    UdpClient::UdpClient(QWidget *parent,Qt::WindowFlags f):QDialog(parent,f)
    {
    setWindowTitle(tr("Udp client"));
    ReceiveText = new QTextEdit(this);
    CloseBtn = new QPushButton(this);
    
    mainLayout = new QVBoxLayout(this);
    mainLayout->addWidget(ReceiveTextEdit);
    mainLayout->addWidget(CloseBtn);
    }

    在UdpClient.pro中添加以下语句以支持网络开发:
    QT += network

    在udpclient.h中添加以下代码:

    public slots:
    void CloseBtnClicked();
    void dataReceived();
    
    privateint port;
    QUdpSocket *UDPSocket;

    在udpclient.cpp构造函数中添加以下代码:

    connect(CloseBtn,SIGNAL(clicked()),this,SLOT(CloseBtnClicked()));
    
    port = 5555//端口号
    
    udpSocket = new QUdpSocket(this);//构建客户端的socket
    connect(udpSocket,SIGNAL(readyRead()),this,SLOT(dataReceived()));//连接readyRead()信号与读取数据的槽
    
    bool result = udpSocket->bind(port);//绑定到指定的端口号
    if(!result)//若绑定不成功,给出出错信息
    {
    QMessageBox::information(this,tr(“Error”),tr(“UDP Socket Error”));
    return;
    
    }
    
    
    各个槽函数的实现
    

    void UdpClient::CloseBtnClicked()//关闭socket
    {
    close();
    }

    void UdpClient::dataReceived()//接收数据并显示
    {
    while(udpSocket->hasPendingDatagram())//只要socket有数据到达就循环的读取显示
    {
    QByteArray datagram;
    datagram.resize(udpSocket->pendingDatagramSize());
    udpSocket->readDatagram(datagram.data(),datagram.size());
    QString message = datagram.data();
    ReceiveTextEdit->insertPlainText(message);
    }
    }
    “`

    ————————————————————————————————————————————————————————————————–
    以上就是一个简单的udp的简单通信例子,代码只给出了简单的一部分。布局可以自己看着实现。

    展开全文
  • 服务器不停的利用定时器来向socket发送广播消息,客户端可以接收该消息并显示。首先建立工程UdpServer.pro。建立各控件的布局。udpserver.h: class UdpServer:public QDialog { Q_OBJECT public: UdpServer(QWidget...

    下面是一个简单的QT5下的udp通信的下例子。服务器不停的利用定时器来向socket发送广播消息,客户端可以接收该消息并显示。

    首先建立工程UdpServer.pro。建立各控件的布局。

    udpserver.h:
    
    class UdpServer:public QDialog
    {
    Q_OBJECT
    public:
    UdpServer(QWidget *parent=0,Qt::WindowFlags f=0);
    ~UdpServer();
    
    prvate:
    QLabel *TimerLabel;
    QLineEdit *TextLineEdit;
    QPushButton *StartBtn;
    QVBoxLayout *mainLayout;
    };
    
    udpserver.cpp
    
    UdpServer::UdpServer(QWidget *parent,Qt::WindowFlags f):QDialog(parent,f)
    {
    setWindowTitle(tr("UDP 服务器"));
    
    TimerLabel = new QLabel(tr("Timer:),this);
    TextLineEdit = new QLineEdit(this);
    StartBtn = new QPushButton(tr("Start"),this);
    
    mainLayout = new QVBoxLayout(this);
    mainLayout->addWidget(TimerLabel);
    mainLayout->addWidget(TextLineEdit);
    mainLayout->addWidget(StartBtn);
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    下面实现服务器的消息广播功能: 
    在UdpServer.pro 中加入 :

    QT += network 
    这样就可以支持网络开发了。

    在udpserver.h中添加想要的槽函数

    public slots:
    void StartBtnClicked();
    void timeout();
    
    privateint port;
    bool isStarted;
    QDdpSocket *udpSocket;
    QTimer *timer;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在源文件udpserver.cpp的构造函数中添加如下代码

    conne(startBtn,SIGNAL(clicked()),this,SLOT(StartBtnClicked()));
    port = 5555;
    isStarted = false;
    UDPSocket = new QUdpSocket(this);//构建一个socket
    timer = new QTimer(this);//构建一个定时器
    connect(timer,SIGNAL(timeout()),this,SLOT(timeout()));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    槽函数实现:

    void UdpServer::StartBtnClicked()
    {
    if(!isStarted)
    {
    StartBtn->setText(tr("STOP");
    timer->start(1000);//启动定时器
    isStarted = true;
    }
    else
    {
    StartBtn->setText(tr("Start"));
    isStarted = false;
    timer->stop();
    }
    
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    timeout函数的实现广播消息:

    void Udpserver::timeout()
    {
    QString message = TextLineEdit->text();//获取要广播的消息文本
    int length = 0//文本长度置零
    if(message= “”)//如果输入的文本为空,就返回
    {
    return;
    }
    
    
    /*向指定的地址和端口写入数据报消息,如果写入的长度和输入的长度不同,程序返回*/
    if((length = UDPSocket->writeDatagram(message.toLatin1(),message.length(),QHOSTAddress::Broadcast,port))!=message.length())
    {
    return;
    }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    *——————————————————————————————————————————————————————————————–

    下面udp客户端的实现。获取服务器广播的消息,并显示出来。 
    首先建立工程 UdpClient.pro 建立各个控件的布局。 
    udpclient.h:

    class UdpClient:public QDialog
    {
    Q_OBJECT
    public:
    UdpClient(QWidget *parent =0,Qt::WindowFlags f=0);
    ~UdpClient();
    
    private:
    QTextEdit *ReceiveTextEdit;
    QPushButton *CloseBtn;
    QVBoxLayout *mainLayout;
    
    };
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    udpclient.cpp

    UdpClient::UdpClient(QWidget *parent,Qt::WindowFlags f):QDialog(parent,f)
    {
    setWindowTitle(tr("Udp client"));
    ReceiveText = new QTextEdit(this);
    CloseBtn = new QPushButton(this);
    
    mainLayout = new QVBoxLayout(this);
    mainLayout->addWidget(ReceiveTextEdit);
    mainLayout->addWidget(CloseBtn);
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在UdpClient.pro中添加以下语句以支持网络开发: 
    QT += network

    在udpclient.h中添加以下代码:

    public slots:
    void CloseBtnClicked();
    void dataReceived();
    
    privateint port;
    QUdpSocket *UDPSocket;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在udpclient.cpp构造函数中添加以下代码:

    connect(CloseBtn,SIGNAL(clicked()),this,SLOT(CloseBtnClicked()));
    
    port = 5555//端口号
    
    udpSocket = new QUdpSocket(this);//构建客户端的socket
    connect(udpSocket,SIGNAL(readyRead()),this,SLOT(dataReceived()));//连接readyRead()信号与读取数据的槽
    
    bool result = udpSocket->bind(port);//绑定到指定的端口号
    if(!result)//若绑定不成功,给出出错信息
    {
    QMessageBox::information(this,tr(“Error”),tr(“UDP Socket Error”));
    return;
    
    }
    
    
    各个槽函数的实现
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    void UdpClient::CloseBtnClicked()//关闭socket 

    close(); 
    }

    void UdpClient::dataReceived()//接收数据并显示 

    while(udpSocket->hasPendingDatagram())//只要socket有数据到达就循环的读取显示 

    QByteArray datagram; 
    datagram.resize(udpSocket->pendingDatagramSize()); 
    udpSocket->readDatagram(datagram.data(),datagram.size()); 
    QString message = datagram.data(); 
    ReceiveTextEdit->insertPlainText(message); 


    “`

    ————————————————————————————————————————————————————————————————–
    以上就是一个简单的udp的简单通信例子,代码只给出了简单的一部分。布局可以自己看着实现。

    展开全文
  • 先写一个客户端,实现简单的,能加入聊天,以及加入服务器的... } 实现后的界面: 以上这篇QT网络编程Tcp下C/S架构的即时通信实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
  • Python实例浅谈之七socket编程

    万次阅读 2015-04-15 22:30:02
    一、简介  QWidget提供了处理窗口部件的几何布局的函数,分两类:(1)包含窗口边框的处理函数,包括x(), y(), frameGeometry(), pos()和move()。(2)不包含窗口边框的处理函数,包括...(1)Qt窗口几何布局如下
  • 网络编程,OSI(开放式系统互联参考模型)七层参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 套接字(Socket)是网络通信的基本构建模块,又分为流式套接字(Stream Socket)和数据报套接字...
  • 一、描述 QAbstractSocket 类提供所有Socket类型通用... 创建一个原生Socket实例化QAbstractSocket,并调用setSocketDescriptor()来包装原生Socket。 TCP(传输控制协议)是一种可靠的、面向流的、面向连接的传输协.
  • qt tcp socket通信基础

    2021-03-13 08:10:54
    前言:这篇笔记是本人在学习qt的网络编程时写的,由于本人没有任何网络编程基础,在这之前也不知道ip,tcp,udp的意思,书上给出的函数不知道怎么用,所以就去找了几个实例大致了解了一下这些东西 ...在socket编程
  • Qt中提供了QUdpSocket 类来进行UDP数据报(datagrams)的发送和接收。这里我们还要了解一个名词Socket,也就是常说的“套接字”。 Socket简单地说,就是一个IP地址加一个port端口。因为我们要传输数据,就要知道往...
  • 关于简单实例 Mac 上运行.../usr/bin/python# -*- coding: UTF-8 -*-import socket# 建立一个服务端server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind(('localhost',6999)) #绑定要监听的端口s...
  • (本文采用Qt进行开发实现,且结合了C/C++混合编程的知识) 1、新建一个源文件udp.c与头文件udp.h,并且在Qt项目文件中 添加Windows库“winsock2.h”如下: 2、在头文件创建UDP发送端和接收端函数: #ifndef ...
  • QT的TCP/IP对话框

    2020-08-21 10:23:50
    首先介绍一下TCP:(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的...QT提供了QTcpSocket类,可以直接实例化一个客户端,可在help中索引如下: The QTcpSocket class provides a TCP socket.
  • TCP服务器一对多实例服务器的搭建步骤1....编程环境 VS2008 + Qt4.7 代码思路:用QList<QTcpSocket *> socketClient将所有连接上来的客户端Socket描述符都保存起来,当服务器接收到一个客户端发来
  • 7.1.3 串口编程应用实例168 实验7.1 串口通信实验170 7.2 嵌入式Linux网络编程171 7.2.1 网络通信171 7.2.2 Socket简介172 7.2.3 网络编程172 实验7.2 Socket相关程序设计174 7.3 嵌入式蓝牙技术176 ...
  • C++多线程

    2019-09-27 02:01:38
    目录 1、简单多线程实例(使用join()) 2、简单多线程实例(使用detach()) ...Socket网络编程 1、简单多线程实例(使用join()) 使用thread创建子线程,并立马使用jion()阻塞住,直到子线程执行完毕;(两个子线程并...
  • C语言、socket编程 QT等图形库( 编写一个GUI的界面) 计算机网络( 各种常见的协议, 五层模型) 推荐书籍 《TCPIP 网络实验程序篇》 《linux就该这么学》 … 基本思路 程序运行后 , 创建socket , 进入while(1)循环,...
  • ①项目实战Small example:C:Socket之TCP编程 [控制台程序] ②项目实战Small example:C:Socket之UDP编程 [控制台程序] 源码说明: 版本: 编码语言: 源码下载: 01_C_socket_tcp_and_udp 项目运行演示: 02_C...
  • 《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建...12.2.5 Qt/Embedded图形界面编程 12.2.6 Qt/Embedded对话框设计 12.3 实验内容——使用Qt编写“Hello,World”程序 12.4 本章小结
  • 《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建...12.2.5 Qt/Embedded图形界面编程 12.2.6 Qt/Embedded对话框设计 12.3 实验内容——使用Qt编写“Hello,World”程序 12.4 本章小结
  • 《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建...12.2.5 Qt/Embedded图形界面编程 12.2.6 Qt/Embedded对话框设计 12.3 实验内容——使用Qt编写“Hello,World”程序 12.4 本章小结
  • 华清远见(很棒)--嵌入式Linux应用程序开发详解 第1章 Linux快速入门 1 ...12.2.5 Qt/Embedded图形界面编程 414 12.2.6 Qt/Embedded对话框设计 416 12.3 实验内容——使用Qt编写“Hello,World”程序 420
  • linux c应用程序开发教程

    热门讨论 2010-09-06 16:52:48
    第1章 Linux快速入门 1 1.1 嵌入式Linux基础 1 ...12.2.5 Qt/Embedded图形界面编程 414 12.2.6 Qt/Embedded对话框设计 416 12.3 实验内容——使用Qt编写“Hello,World”程序 420 本章小结 428
  • 目录 第1章 Linux快速入门 1 1.1 嵌入式Linux基础 1 ...12.2.5 Qt/Embedded图形界面编程 414 12.2.6 Qt/Embedded对话框设计 416 12.3 实验内容——使用Qt编写“Hello,World”程序 420 本章小结 428

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

qtsocket编程实例