入职日志

#qt# #c++#项目写到一半,发现有很多技术写了又忘了。开个帖子每天记录一下
2023-10-08
在牛客打卡1天,今天也很努力鸭!
全部评论
系统需要在数据流中存储的为longlongint的长整数类型,不会出现double等浮点数类型。所以要将数据根据需要选择添加小数点(数据流中是12345,当类型为两位小数点的浮点数时,显示在系统上应该是123.45。当从系统向数据流中录入的时候应该是输入123后自动补充小数点123.00,数据流中数据为12300) //将下位机保存的值读入页面中 控制位数版本 void numLoad(QLineEdit *edit,void *addr,int n,int point) { //当存储变量为4字节的时候 if (n == 4) { edit->setText(tr("%1").arg(QString::number((float)(*(int *)addr)/std::pow(10, point),'f',point))); } //当存储变量为2字节的时候 else if(n == 2) { edit->setText(tr("%1").arg(QString::number((float)(*(short int *)addr)/std::pow(10, point),'f',point))); } //当存储变量为1字节的时候 else if(n == 1) { edit->setText(tr("%1").arg(QString::number((float)(*(char *)addr)/std::pow(10, point),'f',point))); } }
点赞 回复 分享
发布于 2023-10-08 10:26 广东
使用qt ui中的动态属性功能。控制输入输出的最大最小值,以及小数点位置控制。 通过property来获得属性值 //qlineEdit中的动态属性带入到SoftkeyLineEdit中 if(originalLineEdit->property("VarType").isValid()) { myLineEdit->type = originalLineEdit->property("VarType").toInt(); myLineEdit->numkeyboard->type = myLineEdit->type; } if(originalLineEdit->property("VMax").isValid()) { myLineEdit->Vmax = originalLineEdit->property("VMax").toLongLong(); myLineEdit->numkeyboard->Vmax = myLineEdit->Vmax; myLineEdit->numkeyboard->VRange(); } if(originalLineEdit->property("VMin").isValid()) { myLineEdit->Vmin = originalLineEdit->property("VMin").toLongLong(); myLineEdit->numkeyboard->Vmin = myLineEdit->Vmin; myLineEdit->numkeyboard->VRange(); }
点赞 回复 分享
发布于 2023-10-08 10:38 广东
使用qLineEdit的自定义衍生类SoftKeyLineEdit来替换原先的qLineEdit来实现点击时弹出键盘。这样带来的后果是原本的ui设计中的原控件被SoftKeyLineEdit替代。但是当需要修改值的时候,又要通过qLineEdit来查找SoftKeyLineEdit,导致代码非常繁琐。现在想来,应该通过监听鼠标点击事件。当点击到qLineEdit控件的时候弹出键盘
点赞 回复 分享
发布于 2023-10-08 10:42 广东
水群发现QByteArray不能和"字符串"直接比较。因为QByteArray temp中 temp == "字符串"的"=="有一个重载。具体而言,QByteArray 中的 operator==() 实际上调用了 QByteArray::compare() 函数进行比较。该函数会逐个比较字节,直到找到不匹配的字节或达到其中一个数组的末尾。
点赞 回复 分享
发布于 2023-10-08 10:57 广东
使用ui控件中的动态属性,在点击控件的时候 得到了需要改变的动态属性H15000 通过这个属性找到后台数据。但是反过来 需要根据后台数据 改变相关联的动态属性的控件 如何操作呢?(待定)
点赞 回复 分享
发布于 2023-10-10 16:34 广东
qtvirtukeyboard如何禁用?(待定)
点赞 回复 分享
发布于 2023-10-10 16:34 广东
numkeyboard->setWindowFlags(Qt::FramelessWindowHint | Qt::Popup); 使用Popup模态窗口打开 可以实现 点击窗口以外的部分时自动关闭窗口
点赞 回复 分享
发布于 2023-10-11 13:30 广东
今天发现信号和槽重复互相调用导致了一个bug?但是为什么有时候不触发呢。。?(加锁解决了)
点赞 回复 分享
发布于 2023-10-11 15:43 广东
感觉让应届生来架构整个项目是否有些太勉强了。今天发现自己搭的架构问题很大,程序需要优化,但是要先优化架构,烦
点赞 回复 分享
发布于 2023-10-14 14:56 广东
可以将int类型的数据直接穿换成地址指针,第一次知道。感觉这样操作好危险
点赞 回复 分享
发布于 2023-10-14 14:57 广东
ui->codeText->setText(reinterpret_cast<const char*>CNC_CODE_PARAM_ADDRBASE); 将地址内容转换成字符指针 借此读出字符串
点赞 回复 分享
发布于 2023-10-14 14:58 广东
fineChild可以直接递归查询所有的所属控件。但是无法找到代理delegate控件。只能找到table之后table->itemDelegateForColumn(column);来查询
点赞 回复 分享
发布于 2023-10-17 17:34 广东
老哥是java找到qt了吗
点赞 回复 分享
发布于 2023-11-06 23:58 河北
qt中有一次性的延时时钟QTimer::singleShot(500,[=]{ materialFlag = 0; });
点赞 回复 分享
发布于 2023-11-13 18:00 广东
表格中一般情况下是无法使用comobox和QPushButton的, 那么 这时候就要使用代理也就是改写QItemDelegate来使用。如:ui->tabServo->setItemDelegateForRow(15,m_15);代理第15行
点赞 回复 分享
发布于 2023-11-25 14:45 广东
当使用connect将QPushButton绑定到某一个lambda表达试中,如果要使用一次,可以在触发后使用disconnect(btnCheck, &amp;QToolButton::clicked, this, nullptr); 值得注意的是 lambda表达式中的参数this在这种情况下不能省略,否则无法成功使用disconnect connect(btnCheck, &amp;QToolButton::clicked,this, [=]() { if(!comm->tempFileName.isEmpty()) { strcpy(reinterpret_cast<char*>(addr), comm->tempFileName.toStdString().c_str()); L->setText(comm->tempFileName); } disconnect(btnCheck, &amp;QToolButton::clicked, this, nullptr); });
点赞 回复 分享
发布于 2023-11-30 11:29 广东
//判断是否为可移动设备 bool isRemovableDrive(const QFileInfo filePath) { QString rootPath = filePath.absolutePath().left(3); // 获取文件所在磁盘的根路径 // 将QString转换为wchar_t* LPCWSTR rootPathW = (LPCWSTR)rootPath.utf16(); // 获取磁盘类型 UINT driveType = GetDriveType(rootPathW); // 判断是否为可移动设备 return driveType == DRIVE_REMOVABLE; }
点赞 回复 分享
发布于 2023-12-06 17:23 广东

相关推荐

云边有个小卖铺儿:校招生违约率低,所以我要高😂
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客企业服务