- 博客(5)
- 收藏
- 关注
原创 Menus Example:菜单示例
QMainWindow提供了一个主应用程序窗口,其中包括菜单栏、工具栏、停靠窗口小部件和围绕大型中央窗口小部件的状态栏。Q_OBJECTpublic:protected:在这个例子中,我们将看到如何实现下拉菜单以及上下文菜单。为了实现自定义上下文菜单,我们必须重新实现QWidget的contextMenuEvent()函数,以接收主窗口的上下文菜单事件。void cut();我们还必须实现一组专用插槽,以响应用户激活我们的任何菜单项。
2024-04-15 14:26:46 883 1
原创 Serial Terminal:QT串口终端
显示如何使用QSerialPort的各种功能。终端展示了如何使用Qt串行端口为简单串行接口创建终端。此示例显示了QSerialPort类的主要功能,如配置、I/O实现等。此外,调用类QSerialPortInfo以显示有关系统中可用串行端口的信息。QSerialPort支持两种通用编程方法:异步(非阻塞)方法:当控制返回到Qt的事件循环时,安排并执行操作。QSerialPort在操作完成时发出信号。例如,QSerialPort::write()会立即返回。
2024-04-10 14:22:43 821
原创 Blocking Sender: QT 串口阻塞发送
因此,不建议在请求线程中读取串行端口名称,而在另一个线程中读取超时或请求数据。例如,write()方法会立即返回。注意,transaction()方法是在主线程中调用的,但请求是在SenderThread线程中提供的。在GUI和多线程应用程序中,可以调用wait方法(在本例中为waitForReadyRead())来挂起调用线程,直到操作完成。在run()函数中,首先是锁定QMutex对象,然后使用成员数据获取串行端口名、超时和请求数据。这也意味着所有的对象方法都是在run()方法的作用域中执行的。
2024-04-10 13:22:57 728 1
原创 Blocking Receiver :QT串口阻塞接收
QString是可重入的,但不是线程安全的,不建议从一个启动、调用和超时或另一个的响应数据中读取串行端口名。使用Qt的阻塞串行编程API通常会导致代码更简单,但由于它的阻塞行为,它只能在非GUI线程中使用,以防止用户界面冻结。方法waitForBytesWritten()应该在阻塞方法的每次write()调用之后使用,因为它处理所有的I/O例程,而不是Qt事件循环。应该在每次调用阻塞方法的read()之前使用方法waitForReadyRead(),因为它处理所有的I/O例程,而不是Qt事件循环。
2024-04-10 12:32:12 685 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人