1 Star 1 Fork 1

老苏打/QT

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
serialportinfo.cpp 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
老苏打 提交于 2024-09-12 18:45 . QT项目
#include "serialportinfo.h"
#include <QDebug>
#include <QQmlEngine>
#include <QQmlComponent>
SerialPortInfo::SerialPortInfo(QObject *parent) :QAbstractListModel(parent)
{
}
void SerialPortInfo::addAll()
{
clear();
QList<QSerialPortInfo> portList=QSerialPortInfo::availablePorts();
for(auto& a:portList){
addSerialPort(a.portName());
}
}
void SerialPortInfo::update()
{
QList<QSerialPortInfo> portList=QSerialPortInfo::availablePorts();
QList<QString> newPortNameList;
for (int i=0;i<portList.size();i++) {
newPortNameList<<portList[i].portName();
}
for (int i=0;i<m_serialPortInfo.size();i++) { //检查已经失效的串口
if(!newPortNameList.contains(m_serialPortInfo[i])){
//删除该串口
beginRemoveRows(QModelIndex(), i, i);
m_serialPortInfo.removeAt(i);
endRemoveRows();
break;
}
}
for (int i=0;i<newPortNameList.size();i++) { //检查新增的串口
if(!m_serialPortInfo.contains(newPortNameList[i])){
//增加该串口
beginInsertRows(QModelIndex(), rowCount(), rowCount());
m_serialPortInfo<<newPortNameList[i];
endInsertRows();
break;
}
}
}
void SerialPortInfo::clear()
{
emit beginResetModel();
m_serialPortInfo.clear();
emit endResetModel();
}
void SerialPortInfo::addSerialPort(const QString &serialPort)
{
beginInsertRows(QModelIndex(), rowCount(), rowCount());
m_serialPortInfo << serialPort;
endInsertRows();
}
int SerialPortInfo::rowCount(const QModelIndex & parent) const {
Q_UNUSED(parent);
return m_serialPortInfo.count();
}
QVariant SerialPortInfo::data(const QModelIndex & index, int role) const {
if (index.row() < 0 || index.row() >= m_serialPortInfo.count())
return QVariant();
const QString &serialPortName = m_serialPortInfo[index.row()];
if (role == portRole)
return serialPortName;
return QVariant();
}
QHash<int, QByteArray> SerialPortInfo::roleNames() const {
QHash<int, QByteArray> roles;
roles[portRole] = "portRole";
return roles;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhang-jia_lin/qt.git
[email protected]:zhang-jia_lin/qt.git
zhang-jia_lin
qt
QT
master

搜索帮助