图8.4socket套接字发送、接收数据示意图2.套接字缓冲区的特性◆缓冲区在每个TCP套接字中单独存在;◆I/O缓冲区在创建套接字时自动生成;◆即使关闭套接字也会继续传送输出缓冲区中遗留的数据;◆关闭套接字将丢失输入缓冲区中的数据。......
2023-11-19
qmake是Qt库提供的一个工程管理工具。在本例中,使用“-project”参数后,qmake会在当前目录下搜索所有的代码文件,分析后生成Qt工程文件hello_qt.pro,该文件描述了Qt工程的默认结构。
生成工程文件后,直接运行qmake程序,会根据当前目录的工程文件生成Makefile工程文件供make程序使用。因此,执行完上面的命令后查看当前目录:
Makefilehello hello.pro hello_qt.cpphello_qt.o
从目录文件列表看出,已经生成了Qt工程文件hello_qt.pro、mingw32-make使用的工程文件Makefile,以及可执行文件hello。
下面分析一下hello_qt.cpp程序。在程序的开头包含了两个头文件qapplication.h和qpushbutton.h,这两个文件每个文件中都包含了一个类,分别用于管理一个窗体应用程序和按钮。Qt提供了许多的图形界面组件,在使用不同的组件之前需要包含组件的头文件。在所有的Qt应用程序中,都必须有一个QApplication类的对象。QApplication管理应用程序用到的各种资源,如光标和字体等。QPushButton是一个按钮控件类,与Windows系统的控件类似,提供了鼠标移动、按下按钮等操作,以及其他属性。可以通过设置QPush-Button的属性改变按钮的外观,也可以向QPushButton添加信号响应函数处理用户的动作。
与其他的应用程序一样,main()函数是Qt应用程序的入口。在Qt应用程序中,需要加入main()函数的命令行参数供QApplication类使用。QApplication提供了许多默认的函数,如设置一些QT初始化参数等,可以通过Qt使用手册查询参数的使用方法。
程序第11行调用QPushButton的resize()成员函数重新设置了按钮的大小。在一个Qt应用程序中,需要设置一个主窗口控件,当主窗口控件退出后,整个Qt应用程序也就退出了。(www.chuimin.cn)
当新建一个控件后,默认是不可见的,因此程序第13行调用QPushButton控件的show()函数在屏幕上把控件显示出来。在程序第14行调用QApplication类的exec()函数把main()函数的控制权交给Qt,当应用程序退出后,exec()函数随之退出。在exec()函数中,Qt接收用户从界面或者系统发送来的各种事件,交给用户编写的控件处理函数或者Qt自身的处理函数处理。
编译完成程序后,在工程可执行程序所在文件夹下双击hello程序出现Qt版Hello World程序界面,整个Qt应用程序窗体都被一个按钮覆盖,这是程序第13行设置窗体主控件的结果。用户单击按钮后没有任何反映,这是由于没有添加QPushButton的处理函数,系统默认不做任何处理。后面的例子将介绍如何处理控件的事件响应。
【例10.2】文本界面风格的Hello World程序
修改后的Hello World程序
上述程序实例展示了QLabel组件的功能。程序第7行定义了一个QLabel标签对象,标签的文字使用了HTML语法格式。Qt支持字符串使用HTML语法格式描述,Qt会解释HTML语法的含义并且显示正确的结果。
有关ARM嵌入式系统原理与应用的文章
图8.4socket套接字发送、接收数据示意图2.套接字缓冲区的特性◆缓冲区在每个TCP套接字中单独存在;◆I/O缓冲区在创建套接字时自动生成;◆即使关闭套接字也会继续传送输出缓冲区中遗留的数据;◆关闭套接字将丢失输入缓冲区中的数据。......
2023-11-19
Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是提供静态的文件。而Web服务器涵盖了HTTP服务器,Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。图11.2W eb服务器工作原理图我们以浏览器作为客户端,完成Web服务的工作流程讲述。Web服务器是以短连接为主,并且获取的数据到达浏览器的那一刻一定是静态的不变的。......
2023-11-19
ARM微处理器已经遍及工业控制、消费类电子通信系统、网络系统、无线系统各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器80%以上的市场份额。ARM嵌入式技术在联网方面的优势,为弧焊电源实现网络化控制奠定了基础。ARM9可以达到180~200MHz的工作速率,它能驱动的周边装置比ARM7多,应用范围也比较广。ATMEL公司的AT91AM9200是基于ARM9的,具有丰富的接口功能。ARM芯片通信接口能力强,一般用于焊接过程及设备人机界面系统的核心芯片。......
2023-06-26
嵌入式系统的发展大致经历了嵌入式微控制器、嵌入式微处理器和嵌入式数字信号处理器、嵌入式片上系统和以Internet为标志的嵌入式系统等阶段。嵌入式系统的出现最初是基于单片机的,这一阶段的嵌入式系统硬件是单片机,软件停留在无操作系统阶段,采用汇编语言实现系统的功能。第四阶段是以Internet为标志的嵌入式系统。......
2023-11-19
Bootloader是具有引导功能的程序,在嵌入式系统中,Bootloader是系统加电后运行的第一段代码。Bootloader运行在内核之前,其作用是进行基本的初始化工作。图6.13Linux系统的典型分区结构BootLoader是严重地依赖于硬件而实现的,其任务可以划分为两个阶段:第一阶段●基本硬件设备初始化;●为第二阶段准备RAM空间;●复制Bootloader的第二阶段代码到RAM;●设置堆栈;●跳转到第二阶段的C程序入口点。......
2023-11-19
在PDA类的设备中,系统在全速运行的时候远比空闲的时候少,所以可以通过设置,使CPU尽可能工作在空闲状态,然后通过相应的中断唤醒CPU,恢复到正常工作模式,处理响应的事件,然后再进入空闲模式。CPU空闲时,降低时钟频率;处于工作状态时,提高时钟频率以全速运行处理事务。......
2023-11-08
嵌入式系统设计与开发工作中,软件工作量约占全部工作量的80%,其中测试和验证部分的工作量占软件工作量的70%。图1.6嵌入式系统设计与开发流程1.需求分析分析用户的需求:产品的功能、性能、价格、体积、功耗等。嵌入式系统(实现)编程:选择硬件、操作系统、编程语言以及开发工具,编写程序。......
2023-11-19
相关推荐