QLatin1string保存的是字符串的地址,比直接的qsring开销小
styleSheet=this->styleSheet()是获取当前的样式表再和从文件中读取的样式表合并起来
styleSheet += QLatin1String(file.readAll());
setStyleSheet(styleSheet);
就是该控件的样式表
painter里的设置透明也就是给图片设置透明是:
QPainter painter;
painter.fill(Qt::transparent);
而主窗口的设置透明则是:
setAttribute(Qt::WA_TranslucentBackground, true); // 透明效果
白色的RGB是(255,255,255),黑色是(0,0,0);
在 Qt 中,槽函数可以是任何类的成员函数,只要它们符合槽函数的定义。因此,onShowQuit 函数不需要是 m_parent 的直接成员函数,它只需要是 m_parent 类或其基类的成员函数即可。
(2024.4.5)遇到了一个大错误:::数据库连接不上,很崩溃,试了很多次,最后用navicat不小心把root用户给删了,root用户是最重要的用户,结果navicat和mysql连接不上了,mysql也登不进去,试了很多方法将root用户给恢复回来,结果多没有用。最后气的只能重新删除mysql,将mysql的日志,服务等都删掉,重新下载,结果下载成功后mysql和navicat无法连接,sqlyog也连接不上2058错误,再次崩溃,最后发现是版本不兼容,导致加密方式不一样,幸好解决方案很简单,在mysql的命令行里更改密码就可以让mysql的加密方式更改,结果就可以连接上了,还得重新写数据库的内容,花了2个半小时解决。
navicat不好用,因为新下的是mysql8.0,里面选择字符集编码的话没有utf8了,只有utfmb3和utfmb4供选择,不知道为什么其实选utfmb4是可以的,可以进行正常的编码但就是出现了中文乱码现象,最后网上办法都试了没用,无奈只好换sqlyog连接数据库,发现这里没有该问题
总是发现QPixmap和QImage的区别分不清,这里用的是QPixamp那里用的是QImage总是傻傻分不清,区别
- QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的
2.QPixmap 适合用于绘制到屏幕上或者其他显示设备上,如在 QPainter 中使用 drawPixmap 进行绘制操作,QImage 更适合用于图像处理、图像格式转换、像素级操作等场景,因为它提供了丰富的像素级操作接口,比如直接修改像素颜色、剪切、缩放等。
3.QPixmap 的数据存储方式优化了显示操作,因此在显示图像时性能更高,但不适合进行频繁的像素级操作,QImage 的性能相对较低,但提供了更丰富的像素级操作接口,适合于图像处理等场景
两者转换方式就是QPixamp::FromImage(image)和QImage image=pixmap.toImage();
QLatin1String作用和QString差不多,但是这个很有效率,当内容过多时好使用,因为这个指定的是目标的地址而不是值。
QScrollArea是qt里能滚动的子控件,也就是可以下拉,在ccMainWindow的ui界面设置里,在使用TreeWidget前用QScrollArea作底可以实现下拉。
User
在qt里Resources/MainWindow/MsgHtml/msgtmpl.txt是相对路径,资源没有加载到qrc里面
:/Resources/MainWindow/MsgHtml/msgtmpl.txt是绝对路径,资源加载到qrc里面了
Q_GLOBAL_STATIC(WindowManager, theInstance)是单例模式的又一个写法,Q_GLOBAL_STATIC 是 Qt 框架中的一个宏,用于创建全局静态对象。WindowManager 是一个类的类型,theInstance 是该静态对象的名字。作用是在程序运行期间创建一个全局的静态对象,该对象在程序的整个生命周期中都存在,且只会被创建一次
在Qt中,Qt::UserRole是一个特殊的角色,用于存储自定义数据。通常情况下,Qt提供了一些预定义的角色,比如Qt::DisplayRole用于显示数据,Qt::EditRole用于编辑数据等。但有时候,我们可能需要存储一些与显示和编辑无关的额外数据,这时候就可以使用Qt::UserRole角色。