qt编程实例
A. 《Qt5编程入门》pdf下载在线阅读,求百度网盘云资源
《Qt5编程入门》霍亚飞程梁电子书网盘下载免费在线阅读
链接: https://pan..com/s/1oyMOGDIO7bw9y3vh5OSdVQ
书名:Qt5编程入门
作者名:霍亚飞程梁
出版社:北京航空航天大学出版社
出版年份:2015-1-30
页数:388
内容介绍:
全新,基于 Qt 5.3 编写,全面涉及 Qt Quick;经典,植根于 Qt 网络博客教程,可无限更新;基础,对每个知识点详尽讲解,并设计了示例程序;系统,与《Qt Creator 快速入门(第2版)》相辅相成;
作者介绍:
霍亚飞:嵌入式软件工程师,热爱编程,热爱开源!在博客中发表了大量Qt、Linux教程和开源软件,被众多网友奉为经典!参与创建Qt爱好者社区,进行Qt及开源项目的推广和普及!程梁:软件研发工程师,关注IT技术的创新和改革,专注于Qt技术开发教程的编写。建立博客,创作大量有创意、实践性强的技术开发文章,与广大网友分享、互动,在网络上广受好评。致力于带领广大Qt爱好者步入Qt的精彩世界,与更多朋友分享成功的乐趣。
B. QT开发(五十)——QT串口编程基础
一、QtSerialPort简介
1、串口通信基础
目前使用最广泛的串口为DB9接口,适用于较近距离的通信。一般小于10米。DB9接口有9个针脚。
串口通信的主要参数如下:
A、波特率:衡量通信速度的参数,表示每秒钟传送的bit的个数。例如9600波特表示每秒钟发送9600个bit。
B、数据位:衡量通信中实际数据位的参数,当计算机发送一个信息包,实际包含的有效数据位个数。
C、停止位:用于表示单个包的最后一位。典型的值为1和2位。
D、奇偶校验位:串口通信中一种检错方式。常用的检错方式有:偶、奇校验。
2、QtSerialPort模块简介
QtSerialPort模块是QT5中附加模块的一个模块,为硬件和虚拟的串口提供统一的接口。
串口由于其简单和可靠,目前在像嵌入式系统、机器人等工业中依旧用得很多。使用QtSerialPort模块,开发者可以大大缩短开发串口相关的应用程的周期。
Qt SerialPort提供了基本的功能,包括配置、I/O操作、获取和设置RS-232引脚的信号。
Qt SerialPort模块暂不支持以下特性:
A、终端的特性,例如回显,控制CR/LF等等
B、文本模式
C、读或写操作的超时和延时配置
D、当RS-232引脚信号变化通知
#include <QtSerialPort/QtSerialPort>
要链接QtSerialPort模块,需要在.pro文件中添加如下内容:
QT += serialport
二、QSerialPort
1、QSerialPort简介
QSerialPort提供了访问串口的接口函数。使用辅助类QSerialPortInfo可以获取可用的串口信息。将QSerialPortInfo辅助类对象做为参数,使用setPort()或setPortName()函数可以设置要访问的串口设备。
设置好端口后,可以使用open()函数以只读、只写或读写的模式打开使用。
注意,串口使用独占方式打开。
使用close()函数关闭串口并且取消IO操作。
串口成功打开后,QSerialPort会尝试确定串口的当前配置并初始化。可以使用setBaudRate()、setDataBits()、setParity()、setStopBits()和setFlowControl()函数重新配置端口设置。
有一对名为QSerialPort::dataTerminalReady、QSerialPort::requestToSend的属性
QSerialPort提供了中止正在调用线程直到信号触发的一系列函数。这些函数用于阻塞串口。
waitForReadyRead():阻塞调用,直到有新的数据可读
waitForBytesWritten():阻塞调用,直到数据以及写入串口
阻塞串口编程与非阻塞串口编程完全不同。阻塞串口不会要求时间循环并且通常会简化代码。然而,在GUI程序中,为了避免冻结用户界面,阻塞串口编程只能用于非GUI线程。
QSerialPort也能使用QTextStream和QDataStream的流操作符。在试图使用流操作符>>读时,需要确保有足够可用的数据。
2、QSerialPort成员函数
QSerialPort::QSerialPort(QObject *parent = Q_NULLPTR)
QSerialPort::QSerialPort(const QString &name, QObject *parent = Q_NULLPTR)
QSerialPort::QSerialPort(const QSerialPortInfo &serialPortInfo, QObject *parent = Q_NULLPTR)
[virtual] bool QSerialPort::atEnd() const
[signal] void QSerialPort::baudRateChanged(qint32 baudRate, QSerialPort::Directions directions)
[virtual] qint64 QSerialPort::bytesAvailable() const
[virtual] qint64 QSerialPort::bytesToWrite() const
[virtual] void QSerialPort::close()
void QSerialPort::setPort(const QSerialPortInfo &serialPortInfo)
void QSerialPort::setPortName(const QString &name)
三、QSerialPortInfo
1、QSerialPortInfo简介
QSerialPortInfo类提供已有串口设备的信息。使用QSerialPortInfo类的静态成员函数生成QSerialPortInfo对象的链表。链表中的每个QSerialPortInfo对象代表一个串口,每个串口可以使用端口名、系统定位、描述、制造商查询。QSerialPortInfo类对象也可以用做QSerialPort类的setPort()成员函数的参数。
2、QSerialPortInfo成员函数
QSerialPortInfo::QSerialPortInfo(const QSerialPort &port)
QSerialPortInfo::QSerialPortInfo(const QString &name)
QSerialPortInfo::QSerialPortInfo(const QSerialPortInfo &other)
[static] QList<QSerialPortInfo> QSerialPortInfo::availablePorts()
QString QSerialPortInfo::description() const
bool QSerialPortInfo::hasProctIdentifier() const
bool QSerialPortInfo::hasVendorIdentifier() const
bool QSerialPortInfo::isBusy() const
QString QSerialPortInfo::manufacturer() const
QString QSerialPortInfo::portName() const
quint16 QSerialPortInfo::proctIdentifier() const
QString QSerialPortInfo::serialNumber() const
[static] QList<qint32> QSerialPortInfo::standardBaudRates()
void QSerialPortInfo::swap(QSerialPortInfo &other)
QString QSerialPortInfo::systemLocation() const
quint16 QSerialPortInfo::vendorIdentifier() const
3、QSerialPortInfo显示串口信息实例
C. 用QT编程:编写一个贪吃蛇游戏(写明构思)
用链表来存储蛇身体的位置,有一个指向蛇头的指针。根据蛇的移动方向,在蛇头前加一节蛇身,去掉蛇的最后一节,这样就实现了蛇的移动了。
定一个Timer,每秒重画一次,根据蛇的位置将其画出即可。
D. qt编程,想在一个大的窗体上显示一个小的窗口,应该怎么编写程序呀,相当于一个父窗体,一个子窗体
如果子窗体要嵌入父窗体,就用QWidget类;如果要子窗体悬浮,就用QDialog;如果要子窗体又能嵌入又能悬浮,就用QDockWidget
E. 谁能推荐几本QT编程的新书,最好实例多一点
《Qt高级编程》是一本阐述Qt高级编程技术的书籍。《Qt高级编程》以工程实践为主旨,是对Qt现有的700多个类和上百万字参考文档中部分关键技术深入、全面的讲解和探讨,如丰富的网络/桌面应用程序、多线程、富文本处理、图形/视图架构、模型/视图架构等;另外,除对每章主题内容的探讨外,还给出了许多与之相关的类、方法和技术细节,从而尽可能多地展示了Qt的各种特色。因此,即使是很有经验的Qt程序开发人员,也可以从书中找出自己不曾注意到的技术点。书中的全部示例程序都已用Qt 4.6或者Qt 4.5在Windows、Mac OS X和Linux系统上进行了测试。
F. 《QtCreator快速入门第3版》pdf下载在线阅读全文,求百度网盘云资源
《Qt Creator快速入门》(霍亚飞)电子书网盘下载免费在线阅读
链接: https://pan..com/s/1w7GSo7DyGEhmkcUc2HKZOQ
书名:Qt Creator快速入门
作者:霍亚飞
出版社:北京航空航天大学出版社
出版年份:2017-1
页数:515
内容简介:
本书是基于QtCreator集成开发环境的入门书籍,详细介绍了QtCreator开发环境的使用和Qt基本知识点的应用。本书内容主要包括Qt的基本应用,以及Qt在图形动画、影音媒体、数据处理和
网络通信方面的应用内容。与第2版相比,本书使用Z新的Qt5.6.1和QtCreator4.0.1进行了全书修订,主要重写了3D绘图、影音媒体、WebKit等章节;添加了Qt5框架介绍、将Qt4代码迁移到
Qt5等相关附录,从而帮助初学者快速入门Qt5编程。
本书内容全面、实用,讲解通俗易懂,适合没有Qt编程基础、有Qt编程基础但是没有形成知识框架以及想学习Qt某一方面应用的读者,也适合想从Qt4跨入Qt5编程的读者。对于想学习QML及QtQuick编程的读者,可以学习《Qt5 编程入门》一书;想进一步学习Qt开发实例的读者,可以学习《Qt及QtQuick开发实战精解》一书。
G. QT/c++ 编程
1)你得把你的Hello.cpp单独放到一个文件夹里;
2)进入终端,用cd命令进入你放置Hello.cpp的文件夹内;
cd /media/data/amule/bc/myself_test
3)在终端输入qmake -project
4)看文件夹内是否生成myself_test.pro,如果生成了,继续下一步
5)qmake (可以有myself_test.pro,也可以没有工程名)
6) make 就会出来一大堆的链接显示
就会生成myself_test
7)./myself_test运行程序 ,不过有时候要看生成的程序是否在debug文件夹或者release文件夹中
H. qt编程,请教个大家这里要怎么写,左边是个comboBox类,可选择1,2,3三个值,后面的line edit可根据
要根据comboBox的选项不同来改变LineEdit的输入数值范围我们可以利用QComboBox的
void currentIndexChanged ( const QString & text ) 这个信号,但选择改变的时候就会
被emit;
要设定LineEdit的输入数值范围我们可以用setValidator()来设置LineEdit的正则表达式。
然后再自定义一个槽根据index来为lineEdit设置不同的Validator。
connect 信号currentIndexChanged 和这个槽 就可以完成这个功能。
偶写的程序
#include "dialog.h"
#include <QtGui>
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
{
comboBox = new QComboBox;
lineEdit = new QLineEdit;
comboBox->addItem("1");
comboBox->addItem("2");
comboBox->addItem("3");
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(comboBox);
layout->addWidget(lineEdit);
this->setLayout(layout);
connect(comboBox,SIGNAL(currentIndexChanged(int)),
this,SLOT(selectChanged(int)));
this->selectChanged(0);
}
void Dialog::selectChanged(int index)
{
QRegExp rx;
switch(index)
{
case 0:
rx.setPattern("^\\d$");
break;
case 1:
rx.setPattern("^\\d{0,2}$");
break;
case 2:
rx.setPattern("^\\d{0,3}$");
break;
default:
break;
}
QValidator *validator = new QRegExpValidator(rx, this);
lineEdit->setValidator(validator);
}
I. 有谁发个QT编程的简单的实例,点击A窗口按钮,弹出B窗口界面。
子窗口中可以有独立的窗口监听这些,和主窗口无关。将新窗口的关闭动作处理为setVisiable(false)试一下你说的问题解决方法很多,建议你去看一