- 博客(46)
- 资源 (3)
- 问答 (3)
- 收藏
- 关注
原创 【QT学习十四】 文件目录操作
Qt提供了一些用于文件和目录操作的类,这些类使得在Qt应用程序中进行文件系统操作变得非常方便。QFile:用于执行文件的操作,例如读取、写入、复制和移动文件等。QDir:提供了对目录的操作,例如列出目录中的文件、创建和删除目录等。QFileInfo:提供了关于文件和目录的元信息,如文件大小、创建时间、修改时间等。:用于创建临时文件,通常用于临时性的文件操作。:提供了一个模型来展示文件系统的结构,可以在Qt的视图组件中使用,如QTreeView和QListView。
2024-02-08 11:17:17 930 1
原创 【QT学习十三】QChart
概述QChart 是 Qt Charts 模块中的主要类之一,用于管理图表的系列、图例和坐标轴的图形表示。QChart 类提供了强大的图表绘制功能,能够轻松创建和展示各种类型的图表,包括折线图、柱状图、饼图等。
2024-02-08 09:48:51 920
原创 Linux 下查看端口以及释放端口
在 Linux 系统上,你可以使用 `netstat` 或 `lsof` 命令来查看端口是否被占用。将 `` 替换为要查看的进程的进程ID,这样你就可以查看特定进程打开的文件。替换 `` 为要查看的端口号,这将显示占用该端口的进程信息。`-SIGNAL`:在终止进程时发送指定的信号,而不是默认的 SIGKILL。这将显示占用指定端口的进程信息。`-a, --all`:显示所有进程的信息,包括没有访问任何文件的进程。`-m, --mount`:显示使用指定文件系统或块设备的所有进程。
2024-01-24 18:09:47 1248
原创 Ubuntu22.04报错:ValueError: the symlink /usr/bin/python3 does not point to ...
update-alternatives` 是一个用于管理系统中软件版本的工具,允许用户在不同的备选项之间进行选择,以及设置默认的备选项。使用 `update-alternatives` 命令重新设置 `/usr/bin/python3` 符号链接。这个例子中,通过 `--install` 选项添加了两个备选项,然后通过 `--config` 选项选择默认的 Python 版本。- 在配置完成后,符号链接会指向用户选择的默认备选项,使得系统中的软件可以引用该符号链接而不必关心具体的软件版本。
2024-01-24 11:40:02 995
原创 【QT学习十二】QComboBox
QComboBox 是 Qt 中用于实现下拉框的强大工具,它提供了一种简便的方式来选择单个值或从一组选项中进行选择。QComboBox提供了一种以占用最小屏幕空间的方式向用户呈现选项列表的方法。ComboBox是一种选择小部件,显示当前项目,并可以弹出可选择项目的列表。QComboBox 是基于 Qt 框架的 QWidget 类的子类。它实现了一个下拉框,其中包含一个可供用户选择的列表。其原理主要基于使用了下拉列表(QListView)和按钮(QAbstractButton)。
2024-01-21 14:21:40 1092
原创 【QT学习十】QListView
QListView 是一个用于显示列表数据的控件,它提供了灵活的视图模型以及对列表项的高度自定义的能力。1、QListView 是Qt中的一个视图类,用于展示模型中的数据。它基于QAbstractItemView,支持多种视图模式,包括列表视图(List View)、图标视图(Icon View)、详细信息视图(Detail View)等。2、QListView 类是Qt中模型/视图框架的一部分,通常与QStandardItemModel或从QAbstractItemModel派生的自定义模型一起使用。
2024-01-12 17:00:32 1182
原创 编译开源软件vtr-verilog-to-routing遇到的一点问题
Verilog-to-Routing(VTR)项目是一个全球性的合作项目,旨在提供一个开源框架,用于进行FPGA架构和CAD研究和开发。VTR设计流程以数字电路的Verilog描述和目标FPGA架构的描述作为输入。然后执行以下操作:1、展开、综合和部分映射(PARMYS)2、逻辑优化和技术映射(ABC)3、打包、布局、路由和时间分析(VPR)生成FPGA速度和面积结果。VTR包括一组已知可与设计流程配合使用的基准设计。以上摘自官网。
2023-08-09 17:39:33 436 1
原创 【VPR】 Command-line - vpr的命令行选项(二)
AAPack以技术映射的blif网表作为输入,该网表由LUT、触发器、存储器、乘法器等组成,并输出一个由更复杂的逻辑块组成的.net格式的网表。这将指定 clb 块使用 50% 的目标输入引脚利用率,dsp 块分别使用 90% 和 70% 的目标输入和输出引脚利用率,而所有其他块使用 80% 的目标输入引脚利用率。如果一个分子(例如具有许多输入的进位链)在指定的目标利用率下无法适应聚类类型,打包器将退回到使用所有引脚(即目标利用率为 1.0)。较大的值会产生更详细的输出,对于调试架构打包问题可能会有用。
2023-06-02 18:45:00 603
原创 【VPR】 Command-line - vpr的命令行选项(一)
这些主输出可能是不必要的,因为它们始终具有固定的值,不会对电路的功能产生影响。如果这个选项被启用,VPR会尝试将这样的LUT与其下游逻辑合并,从而减少LUT的数量和延迟。默认情况下,VPR会在用户提供的电路名称后附加`.blif`、`.net`、`.place`和`.route`作为文件名,并在工作目录中查找与电路名称相同的SDC文件。在特定的情况和特定的架构上,这些检查可能过于严格,可以将其关闭。通常,这些孤立的主输入和主输出是无效的,因此将它们从电路中移除可以减少电路的复杂性和冗余。
2023-05-29 10:14:38 1108
原创 【QT学习九】QItemDelegate
它是 Model/View 架构中的一部分,通过与模型和视图的交互,实现对 Item 的定制。我们希望定制化完成状态列的显示效果,使用自定义的图标来表示任务的完成状态,并提供一种交互方式来切换任务的完成状态。通过重写委托类的函数,我们可以实现自定义的绘制、编辑和数据更新逻辑,以满足特定的需求。接下来,我们需要创建一个自定义的委托类,继承自 QItemDelegate,并重写其虚函数以实现定制化的显示和编辑逻辑。最后,我们将自定义的委托类应用到特定的列或 Item 视图中,以实现定制化的显示和编辑效果。
2023-05-10 10:27:00 1723
原创 【QT学习八】Qt中的单例模式
在类的私有静态成员变量中保存单例对象的指针,并提供一个静态方法来获取该对象。在静态方法中判断对象是否为空,如果为空则创建一个新的对象,否则返回已有的对象。单例模式在很多情况下都有用处,例如在需要共享资源、管理全局状态、控制资源访问等场景下可以使用单例模式。在单例模式中,类只能实例化一次,并提供了一个静态方法或全局访问点来获取该实例。单例模式是一种创建型设计模式,用于确保类只有一个实例存在,并提供全局访问点以便于其他对象获取该实例。全局访问点:通过静态方法或全局访问点获取单例对象,可以在任何地方访问该对象。
2023-05-09 10:06:07 2545
原创 C++基础知识【10】I/O操作
C++ I/O(输入输出)是 C++ 语言中一个非常重要的部分,它允许我们从键盘、文件或其他设备读取数据,也可以将数据输出到屏幕、文件或其他设备。流(stream):C++ I/O 中的基本单位,表示输入或输出数据的流。输入流用于读取数据,输出流用于将数据写入到指定的设备中。
2023-04-23 20:45:00 670
原创 C++基础知识【9】STL
C++ STL是指标准模板库(Standard Template Library),它是一个由函数模板和类模板组成的C++库。STL提供了大量的通用数据结构和算法,以方便程序员快速开发高质量的程序。STL由三个部分组成:容器(Containers)、算法(Algorithms)和迭代器(Iterators)。
2023-04-17 22:00:00 337
原创 C++基础知识【8】模板
C++模板是一种允许程序员编写通用代码的机制。它们允许函数、类和数据类型适用于不同类型的参数,使得代码可以在不同类型之间进行重用。C++模板是C++编程中非常重要的一部分,它允许程序员以一种通用的方式编写代码,以便代码可以在不同类型之间进行重用。
2023-04-13 18:30:00 578
原创 C++基础知识【7】抽象类和接口
抽象类是一种特殊的类,它不能被直接实例化,只能作为基类来派生新的类。抽象类通常用来定义一组接口方法,但是这些方法并没有实际的实现。它们的实现是由派生类来完成的。在C++中,抽象类通常包含至少一个纯虚函数。纯虚函数是一种特殊的虚函数,它没有实际的实现,只是用来定义接口。如果一个类中包含了纯虚函数,那么这个类就成为了抽象类。抽象类的语法如下:public:// 纯虚函数注意到,纯虚函数在声明时以 "=0" 结尾,这表示它是一个纯虚函数,没有实际的实现。
2023-04-11 21:00:00 1433 1
原创 C++基础知识【6】类和对象
类是一种自定义数据类型,它可以包含数据和方法,用于表示某种事物的属性和行为。我们可以将类看做是一个模板,通过实例化类来创建对象。public:// 构造函数Car();// 带参数的构造函数// 加速方法// 刹车方法private:// 成员变量int speed;int price;在上面的代码中,我们定义了一个名为“Car”的类,它包含了一个默认构造函数和一个带参数的构造函数,以及两个操作方法。我们还定义了三个私有成员变量,分别代表汽车的颜色、速度和价格。
2023-04-11 18:15:00 875
原创 【QT学习七】QTreeWidget
QTreeWidget是Qt中一个用于显示树形结构数据的控件,它继承自QTreeView,可以显示多列数据和树形结构的层次关系,还提供了许多交互功能。可以支持单选、多选和可编辑的节点,还可以自定义节点的样式和布局。除此之外,QTreeWidget 还支持信号和槽机制,可以方便地处理节点的操作事件,如点击、双击、选择等等。头文件: #include <QTreeWidget>继承: QTreeViewQTreeWidget 的节点可以根据需求进行自定义样式的设置。
2023-04-04 20:45:00 8003
原创 C++练习【类模板】
C++类模板是一种通用的类定义,它能够定义一个通用的类模板,并根据模板参数的不同生成具有不同数据类型的类。C++类模板是一种非常强大的工具,可以用于实现通用的代码,避免了重复编写代码的问题,提高了代码的可重用性和灵活性。类模板的定义和实现通常需要放在头文件中,因为编译器需要在使用类模板的地方实例化出具体的类。容器类需要存储不同类型的数据,因此使用类模板可以很方便地实现通用的容器类,避免了重复编写代码的问题。在上面的示例中,我们使用了类模板的定义方式,并在类的各个成员函数中使用了类型参数T来代。
2023-03-30 18:45:00 308
原创 C++基础知识【5】数组和指针
数组是一组具有相同数据类型的元素的集合,可以通过一个名称和一个索引来引用其中的元素。在声明数组时,必须指定数组的大小,这个大小在声明时是固定的,无法改变。数组的元素可以是任何C++数据类型,例如int,double,char等。数组名代表数组的第一个元素的地址,也称为指向数组的指针。数组元素可以使用下标运算符[]访问,下标从0开始计数。
2023-03-08 19:30:00 1779
原创 C++基础知识【4】函数及参数
函数可以先声明再定义,或者直接定义。函数的声明和定义可以分别在不同的源文件中实现,这种方式可以方便地实现模块化编程和代码复用。函数声明:函数声明通常包括函数名、参数列表和返回类型,它告诉编译器这个函数的存在和类型,以便编译器在调用该函数时能够正确地生成调用代码。函数声明可以出现在头文件中,也可以在函数定义之前进行。函数定义:函数定义包括函数名、参数列表、返回类型和函数体,它实现了函数的具体功能。函数定义必须出现在程序的某个位置,通常放在源文件的末尾。
2023-03-07 20:45:00 2762
原创 Tcl_Init error: Can‘t find a usable init.tcl in the following directories
gtkwave 报错Tcl_Init error: Can't find a usable init.tcl in the following directories
2023-03-02 18:01:17 1351
原创 C++基础知识【3】控制语句
在C++中一般情况下是按顺序执行每条语句,控制语句则改变了程序的执行路径,适应更多场景下的不同的处理方式,使程序更加健壮。C++ 中的控制语句主要包括条件语句,循环语句和跳转语句。
2023-03-02 10:04:10 708
原创 C++基础知识【2】运算符和表达式
表达式的值的类型和结果的类型由表达式中参与运算的操作数和运算符决定。运算符(Operator):用于进行运算或操作的符号,包括算术运算符、关系运算符、逻辑运算符、赋值运算符等。需要注意的是,在表达式中多次使用自增自减运算符时,要根据它们的优先级和结合性来计算。在C++中,表达式是由一系列的运算符和操作数组成的式子,可以用于计算一个值或执行某个操作。根据符号的个数,C++中可以把运算符分为单目运算符、双目运算符和三目运算符。优先级高的运算符不一定就是计算结果的优先级高,因为括号的使用可以改变操作符的优先级。
2023-02-28 19:50:30 1176
原创 C++基础知识【1】数据类型和变量
需要注意的是,字面值常量和 #define 指令定义的常量没有类型,而 const 修饰符定义的常量有类型。另外,const 修饰符定义的常量是在编译时确定的,而 #define 指令定义的常量是在预处理时进行替换的。需要注意的是,枚举类型的值可以显式地指定整数值,也可以忽略赋值,没有指定值的情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。:在函数或代码块中定义的变量具有局部作用域,即它们只能在定义它们的函数或代码块内访问。是完全相同的类型,可以互换使用。
2023-02-28 10:01:30 828
原创 【QT学习六】QTextEdit
QTextEdit是Qt中提供的一个用于文本编辑的控件,支持对富文本进行编辑和格式化,可以用于各种应用程序中,如文本编辑器、笔记应用、电子邮件客户端等。此外,QTextEdit还提供了一些其他的配置选项,例如设置最大字符数、设置是否允许用户输入HTML代码等。使用QTextEdit控件可以创建一个基本的文本编辑器,同时还可以与其他Qt控件一起使用,如QDockWidget(创建可停靠的文本编辑区域)和QTabWidget(创建多标签的文本编辑器)。
2023-02-27 13:38:51 4403 2
原创 【QT学习五】Qt 的容器类QList,QVector,QSet,QMap等
它可以存储任何类型的对象,并提供了许多实用的函数来方便地访问和操作列表中的元素。QSet是一个集合,它存储不同的值,并提供了许多函数来方便地访问和操作集合中的元素。注意:存储在Qt容器中的数据必须是可赋值的数据类型,Qt的Object类以及其子类是不能够存储在容器中的,但可以存储其指针。优点:支持高效的随机访问,可以快速插入和删除元素,可以保持元素的顺序。优点:支持高效的随机访问,可以快速插入和删除元素,可以保持元素的顺序。优点:支持高效的查找,插入和删除元素,可以保持元素的唯一性。
2023-02-24 16:07:34 1673
原创 【QT学习四】Qt 的字符串类QString
标准的c++提供了两种字符串:一种是C语言风格的字符串,即以‘\0’结尾的字符数组;另一种是std::string,即标准模板库中的类。Qt则提供了自己的字符串实现Qstring,相比较QString类的功能更强大。QString存储字符串采用的是Unicode码,每一个字符是一个16位的QChar,所以Qstring可以处理中文字符,并且一个汉字可以看作是一个字符。
2023-02-10 15:33:24 2570 1
原创 【QT学习三】Qt 的基本布局类QLayout
最小宽度是使用setColumnMinimumWidth()设置的最大宽度,也是该列中每个小部件的最小宽度。在小部件上调用Qwidget::hide()也会有效地从布局中移除小部件,直到调用Qwidget::show()。在小部件上调用QWidget::hide()也会有效地从布局中移除小部件,直到调用QWidget::show()。另外还可以使用insertWidget()、insertSpacing()、insertStretch()或insertLayout()在布局中的指定位置插入框。
2023-01-19 11:43:53 2855 1
原创 【QT学习二】Qt Design中使用Qt的基本布局
在我们使用Qt做界面设计时,为了界面的整洁美观,往往需要对界面中的所有控件做一个有序的排列,以及设置各个控件之间的间距等等,为此Qt为界面设计提供了基本布局功能,使用基本布局可以使组件有规则地分布。基本布局控件(QLayouts)在UI界面中不会显示,只是控制其中的其它控件的相对位置。如果Qt UI界面中的控件使用了布局,这些控件就会随着窗体的大小变化自动地调整大小和相应的位置。布局是可以嵌套使用的。你还可以使用Qt Design图形化地设计布局界面。也可以使用代码设计界面布局。
2022-12-29 16:07:34 2467 2
原创 【QT学习一】QT的信号和槽机制(Signal & Slot)
信号和槽是完成任意两个Qt对象之间的通讯机制,信号和槽机制是Qt的核心特征,也是Qt不同于其他开发框架的最突出特征。当一个类被继承时,该类的信号和槽也同时被继承,也可以根据需要自己定义信号和槽。一个类若要支持信号和槽,必须从QObject或Qobject的子类继承。Qt信号和槽机制不支持对模板的使用。
2022-12-09 16:48:29 2002 1
原创 Ubuntu 18.04 安装Qt5.15.2开发环境
Ubuntu 18.04 安装 Qt 5.15.2开发环境,Qt Creator 5.0.0
2022-07-28 18:16:45 8965 4
原创 Ubuntu 查看系统版本
可以看到操作系统的发行版号和操作系统版本。5、命令cat/proc/version。4、命令cat/etc/issue。3、命令lsb_release-a。可以查看Linux版本信息及类型。可以查看Linux内核的信息。可以查看发行版本信息。
2022-07-28 18:05:45 37421
原创 Ubuntu 18.04 修改主机名
主机名时存放在/etc/hostname文件中的,只需要修改/etc/hostname文件即可。当前终端不会立即生效,需要重新打开终端。#hostname主机名。需要重启系统,才会生效。
2022-07-28 18:03:40 1214
原创 FPGA结构与CAD设计(2)
以下内容摘自《深亚微米FPGA结构与CAD设计》- 作为一个读书笔记与大家共享。第二章1、FPGA结构 三个基本组件:逻辑单元块、输入/输出单元、可编程布线资源。 1.1、FPGA可编程方法: 最普遍的是使用SRAM单元来控制传输管(Pass transistor)、多路选择器(Multiplexer)和三态缓冲器(Tri-state buffer)以配置所需要的可编程布线资源和逻辑单元块。 其中,传输管是用nMOS管来实现,而非互补传输门,这是因为nMOS...
2022-01-29 13:14:29 593
原创 FPGA结构与CAD设计(1)
以下内容摘自《深亚微米FPGA结构与CAD设计》- 作为一个读书笔记与大家共享。第一章1、决定FPGA性能的三个要素: ①将电路映射到FPGA的CAD水平; ②FPGA硬件结构特性; ③FPGA电路设计水平(晶体管级的电路设计)。2、FPGA有两个重要的优点:降低一次性费用(NRE)和缩短上市时间。也可以说迅速的电路实现和快速的设计周期。3、FPGA组成:可编程逻辑单元块和可编程布线资源。FPGA结构问题:1、FPGA的全局布线结构,规定了芯片中不同布线通道内的相对布...
2022-01-27 17:10:24 633
原创 QTreeView默认选中某个节点的方法
最近使用Qt做个界面,使用了QTreeView显示一个树形数据。想在界面打开时,默认选中某个节点。网上搜索全是MFC的TreeView的。在这里记一下QTreeView的方法:QTreeView的基本使用 QStandardItemModel* model = new QStandardItemModel(ui->m_treeView); model->setHorizontalHeaderLabels(QStringList() << tr("title na..
2022-01-06 13:47:00 4871
原创 Ubuntu ip报错解决方案 ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
之前虚拟机ssh连接没问题,今天竟然连不上了。打开虚拟机 ip a 网卡ens33没有iproot@ubuntu:~/Desktop# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 sc...
2022-01-04 10:21:20 19506 22
原创 Ubuntu20.04.3设SSH服务器
一、安装opensshd-server可以直接 执行命令sudo apt-get install openssh*如果出现以下错误:The following packages have unmet dependencies:openssh-server : Depends: openssh-client (= 1:8.2p1-4ubuntu0.2)openssh-sftp-server : Depends: openssh-client (= 1:8.2p1-4ubuntu0.2)o...
2021-12-28 16:49:02 900
QsciScintilla的使用方法总结QT实例
2021-10-22
Testplugin.zip
2021-08-20
Base64编解码 C++实现
2017-11-30
只有SRPMS包,如何制作linux系统安装镜像
2020-06-08
VC++ 在子进程中 打开对话框程序 Enter键崩溃
2017-11-09
ActiveMQcpp测试失败!
2017-06-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人