Qt容器
容器各个控件的名称依次解释如下。(1) Group Box:组框
QGroupBox 为构建分组框提供了支持。分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。布局时可用作一组控件的容器,但是需要注意的是,内部通常使用布局控件(如 QBoxLayout)进行布局。
(2) Scroll Area:滚动区域
滚动区域用于在框架中显示子部件的内容。如果小部件超过框架的大小,视图就会出现滚动条,以便可以查看子小部件的整个区域。
(3) Tool Box:工具箱
QToolBox 类提供了一列选项卡小部件项。工具箱是一个小部件,它显示一列选项卡在另一列的上面,当前项显示在当前选项卡的下面。
(4) Tab Widget:标签小部件
abWidget 类提供了一组选项卡(多页面)小部件。 QTabWidget主要是用来分页显示的,每一页一个界面,众多界面公用一块区域,节省了界面大小,很方便的为用户显示更多的信息。
(5) Stacked WIdget:堆叠小部件
QStackedWidget 类提供了一个小部件堆栈,其中一次只能看到一个小部件,与 QQ ...
界面跳转设计
Qt中的lambda表达式跳转界面前先学习一个知识点是lambda表达式。
Lambda我们可以将其理解为一个未命名的内联函数。与任何函数类似,一个lambda具有一个返回类型,一个参数列表和一个函数体。但与函数不同,lambda可能定义在函数内部。一个lambda表达式具有如下形式:[capture list] (parameter list) ->return type {function body}capture list: 捕获列表,是一个lambda所在函数中定义的局部变量列表(通常为空)parameter list:参数列表return type:返回类型function body:函数体但是与普通函数不同,lambda必须使用尾置返回来指定返回类型我们可以忽略参数列表和返回类型,但必须永远包含捕获列表和函数体
123456this->setGeometry(800, 480);QPushButton *pushButton = new QPushButton("开关", this);pushButton -> setGeometry( ...
Qt控件③
QLabel控件
用来设计UI界面,给界面添加图片。右键项目名称来添加资源文件,选择Add New。
填上资源文件的名称(可随意写一个),默认添加项目路径下。后面的步骤默认即可,点击完成。
添加 qss 文件。 QSS 文件是使用 Qt 程序相关联的样式表文件。它由 GUI 元素的外观和感觉,包括布局,颜色,鼠标的行为,大小和字体。它的风格,一个可以合并到一个 UI(用户界面)。 与 HTML 的 CSS 类似, Qt 的样式表是纯文本的格式定义,在应用程序运行时可以载入和解析这些样式定义,从而使应用程序的界面呈现不同的效果。
1234567891011121314151617181920212223#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QLabel>#include <QPushButton>class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWi ...
Qt控件②
以下qt控件的学习记录是做毕设应该是需要用到的。
QPushButton控件
QPushButton是实现按钮点击的控件。在mainwindow.h文件中改写代码
1234567891011121314151617181920212223242526#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>/* 引入 QPushButton 类 */#include <QPushButton>class MainWindow : public QMainWindow{ Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow();private: /* 声明一个 QPushButton 对象 pushButton1 */ QPushButton *pushButton1; /* 声明一个 QPushButton 对象 pushButton2 */ QPushButton *pushButton2; privat ...
Qt控件①
字符串类操作字符串QString 提供了一个二元的“+”操作符用于组合两个字符串,并提供一个+=操作符将一个字符串追加到另一个字符串的结尾,另一种方法QString::append()函数具有同样功能。
123QString str1 = "welcome";str1 = str1 + "to you"; //str1 = "welcome to you";QString.append("!"); //str = "welcome to you !";
其他组合字符串作用函数:
insert()函数
原字符串特定位置插入另一个字符串
prepend()函数
原字符串的开头插入另一个字符串
replace()函数
用指定的字符串代替另一个字符串
arg()函数
重载数据类型
trimmed()函数
移除字符串两端的空白字符
simplified()函数
移除字符串两端的空白字符,使用单个空格字符”“代替字符串中出现的空白字符。
查询字符串数据
Q ...
开发板Qt环境搭建
搭建Qt环境防止因为运行qt程序导致网络中断,从而通过NFS挂载的根文件系统断联,串口中断没有反应,运行慢等情况,所以使用mfgtool进行固化系统到开发板上在进行,搭建qt。
烧录文件系统烧录文件系统之前有过,但是并不全面,这回进行整个系统的固化。
首先编译u-boot,编译方法跟以前一样。
1./mx6ull_alientek_emmc.sh
用到的文件是u-boot.imx。打开固化文件工具
进入文件夹中打开boot,将自己的uboot文件照着重命名后进行替换。
使用自构建的系统镜像和设备树文件进行重命名为以上的名字,来进行替换。
最后替换根文件系统,根文件系统不是替换文件,而是替换压缩包。
所以进行对根文件系统压缩。
首先我的压缩是在rootfs的外部使用的命令压缩,但是固化系统失败了。
1sudo tar -vcjf rootfs.tar.bz2
查询原因是应该变为内部打包。
12cd rootfstar -vcjf rootfs.tar.bz2 *
这个*是打包所有文件包括了隐藏文件所以可能是这个问题。解决可以固化系统了。
之后打开串口软件观察,从内部emmc ...
qt信号和槽
信号和槽信号和槽本质上是两个类在进行通信。信号或是传递值,或者是传递动作变化,槽函数响应信号或是接受值,或者根据动作变化来做出对应操作。信号本质信号是由于用户对窗口或者控件做了操作,导致窗口或者控件产生了某个特定事件,这时候对应的窗口类会发出某个信号,以此对用户的挑选做出反应。信号是qt对象中特殊的函数,本质上是一种函数指针,事件发生时调用,不是在信号所属的对象中直接执行。信号的呈现形式就是函数,也就是说某个事件产生了,qt框架会调用某个对应的信号函数,通知使用者。槽的本质槽的职责是对qt框架中产生的信号进行处理。槽是qt对象中普通成员函数,用于处理信号发生时的动作。一个槽可以连接一个或者多个信号,当信号触发时,与之连接的槽会被调用。
信号和槽机制优点
①类型安全:需要关联的信号和槽的签名必须是等同的。
②松散耦合:槽和信号不需要知道对方(信号不用知道是哪个槽接收的,槽不用知道哪些信号关联自己)
连接连接是信号和槽之间的桥梁,它将一个信号与一个槽相关联。当信号发生时,连接会调用与之关联的槽。连接的建立通常通过函数实现。
信号与槽关联是用 QObject::connect() 函数实现的 ...
c++浅学
浅学一下C++ ,为qt打基础写一个上位机软件来做毕设。
C++编译器C语言的编译器是gcc,但是C++的编译器是g++,可以通过命令行进行安装
1sudo apt-get install g++
###hello world
1234567#include <iostream>//iostream是输入和输出的库using namespace std;//使用空间名词stdint main(){ cout << "hello world!" << endl;//cout为 return 0;}
另外的写法
123456#include <iostream>int main(){ std::cout << "hello world!" << std::endl;//输出运算符<< return 0;}
1234567#include <iostream>int main(){ std::cout < ...
计算机网络基础知识
开一个新的篇章,同时进行学习,只学习一种知识点太枯燥了,有点难啃。并且看到有的招聘网站上需要tcp/ip协议的科技树,所以学习一下。
参考书为《图解TCP_IP》
网络通信网络通信本质上是一种进程间通信,是位于网络中不同主机上的进程之间的通信,属于 IPC 的一种,通常称为 socket IPC
网络通信是为了解决在网络环境中,不同主机上的应用程序之间的通信问题。大概可以分为三个层次,如下所示:(1)、硬件层:网卡设备,收发网络数据(2)、驱动层:网卡驱动(Linux 内核网卡驱动代码)(3)、应用层:上层应用程序(调用 socket 接口或更高级别接口实现网络相关应用程序)
在硬件上,两台主机都提供了网卡设备,也就满足了进行网络通信最基本的要求,网卡设备是实现网络数据收发的硬件基础。并且通信的两台主机之间需要建立网络连接,这样两台主机之间才可以进行数据传输。网络数据的传输媒介有很多种,大体上分为有线传输(譬如双绞线网线、光纤等)和无线传输(譬如 WIFI、蓝牙、 ZigBee、 4G/5G/GPRS 等), PC 机通常使用有线网络,而手机等移动设备 ...
IIO驱动
IIO介绍IIO 全称是 Industrial I/O,翻译过来就是工业 I/O,大家不要看到“工业”两个字就觉得 IIO是只用于工业领域的。大家一般在搜索 IIO 子系统的时候,会发现大多数讲的都是 ADC,这是因为 IIO 就是为 ADC 类传感器准备的,当然了 DAC 也是可以的。
1、 iio_dev 结构体IIO 子系统使用结构体 iio_dev 来描述一个具体 IIO 设备,此设备结构体定义在include/linux/iio/iio.h 文件中,
1234567891011121314151617181920212223242526272829303132333435363738474 struct iio_dev {475 int id;476477 int modes; //为设备支持模式 /*INDIO_DIRECT_MODE 提供 sysfs 接口。 INDIO_BUFFER_TRIGGERED 支持硬件缓冲触发。 INDIO_BUFFER_SOFTWARE 支持软件缓冲触发。 INDIO_BUFF ...

