记录杂项相关函数,方便后续使用。
设置悬浮球在用户当前窗口右上角
QScreen *screen = QGuiApplication::primaryScreen(); QRect screenRect = screen->availableVirtualGeometry(); this->move(screenRect.width() - this->width() - 30 + screenRect.x(), 30);QWidget加载qml无法圆角
这是因为setAttribute(Qt::WA_TranslucentBackground);只适应软渲染的。
可以通过qss解决,在qwidget窗口类下执行:
this->setStyleSheet("background-color: green; border-radius: 10px;");或者设置为软渲染,让qml也软渲染,此时setAttribute(Qt::WA_TranslucentBackground)就可以生效了:
QQuickWindow::setGraphicsApi(QSGRendererInterface::Software);win批量删除所有指定进程名
QProcess p; QString c = QString("taskkill /F /IM xxxx.exe"); p.execute(c); p.close();快捷使用子线程同步处理
m_running = true; QtConcurrent::run([=](){ // 处理阻塞操作... m_running = false; }); while(m_running) { QApplication::processEvents(); // 主线程等待子线程完成 }Mac与Win空字符串路径
mac空字符串路径 默认为系统根目录,使用QDir().exists("")也会判断true,所以删除缓存目录的时候需要注意,避免清空所有磁盘
win空字符路径默认为exe所在目录
其他杂项
查毒网站: VirusTotal - Home
QML杂项
BorderImage
BorderImage类型用于通过缩放或平铺源图像的特定部分来创建图像边框,常用于实现自适应UI元素(如按钮、对话框背景),保持角部不变形而中间区域拉伸。
基本原理
BorderImage将源图像划分为9个区域(基于四条边框线:left、top、right、bottom),其中角部区域(1、3、7、9)通常保持不变形,而边部和中心区域(2、4、5、6、8)根据平铺模式进行缩放或平铺以填充空间。
比如一个带radius的图片,拉伸后需要保持radius不变就需要该类,否则用OpacityMask类
例子:
CMake杂项
set(TARGET_NAME "test") #指定生成的exe名称为test.exe add_compile_definitions(MAIN_PROJECT) #添加宏定义MAIN_PROJECT, 在代码中就可以判断#ifdef MAIN_PROJECT了