- 博客(21)
- 问答 (23)
- 收藏
- 关注
原创 QWidget多屏幕下获取鼠标位置错误
改用QCursor::pos();获取全局鼠标位置,直接使用mapFromGlobal转为局部位置,可自动适配高dpi,无需手动获取dpi进行计算。
2024-12-16 18:58:38
189
原创 QWidget无边框带系统阴影窗口
使用Qt无边框后,窗口失去系统阴影和圆角,可以通过恢复系统阴影的方式恢复。拖拽titlebar功能通过重写nativeEvent实现。可以放在showEvent当中,适配窗口可变大小。
2024-12-16 18:52:15
294
原创 QTextBrowser设置文本边距/QAbstractScrollArea边距控制
使用textFrameFormat可以避免像直接用qss设置padding导致滚动条也产生边距等问题。
2024-06-30 15:45:12
394
原创 qml TextArea/TextEdit 文本编辑框右键菜单contextMenu
直接在TextArea使用onPressed,虽然Qt文档中没有但其实是可以使用的。你需要自己实现一个contextMenu。
2023-06-19 14:08:48
687
原创 QML SplitView 动态更改、不规则拓展handle、收起展开
如果想不规则拓展handle,写好上述函数后,在要拓展的item或位置上写好鼠标处理,包括鼠标样式,然后直接调用相同的函数修改,不必拓展handle的范围,如果还想利用handle的pressed属性等则自己重写一个属性。如果想改变handle的原始拖动效果,可以在handle当中用MouseArea拦截鼠标信号,使用splitter.children[1] === handle等方法进行判定,自己写函数动态更改。
2022-09-27 12:12:48
658
原创 Qt QGraphicsWidget/QGraphicsItem setZValue() 失效
有可能是其中一些QGraphicsWidget/QGraphicsItem设置了ItemStacksBehindParent、ItemNegativeZStacksBehindParent之类的属性,导致了其他的使用setZValue() 时失效,希望能解决你的问题或给你提供一点解决的思路。参考:https://stackoverflow.com/q/69332664/16534558...
2021-09-30 13:01:37
925
原创 Qt QTextEdit 设置只读,设置不可选中,设置鼠标样式
// 设置只读setReadOnly(true);// 设置不可选中setTextInteractionFlags(Qt::NoTextInteraction);// 设置鼠标样式(直接设置不管用,需调用viewport())viewport()->setCursor(Qt::ArrowCursor);
2021-09-08 15:02:03
8715
原创 Qt Model 移动数据
由于Qt没有实现移动数据的函数moveRows,若是要移动数据,可先调用beginMoveRows,再对数据进行更改,最后调用endMoveRows。移动列函数同上。例如可重写moveRows以下写法会导致index发生变化,若是使用QPersistentModelIndex储存过数据需注意bool Model::moveRows(const QModelIndex &source_parent, int source_row, int count,
2021-08-30 15:07:06
1198
原创 Qt 高DPR下的svg图像绘制
QIcon icon(":/***.svg");QPixmap pix = icon.pixmap(QSize(10, 10) * devicePixelRatioF());pix.setDevicePixelRatio(devicePixelRatioF());painter.drawPixmap(QRect(0, 0, 10, 10), pix, pix.rect());
2021-08-18 18:28:06
331
原创 Qt QTextEdit无法设置居中
版本5.15setAlignment(Qt::AlignCenter);设置居中不管用,经测试发现QTextEdit的setPlainText、setText等函数会导致对齐重设为左对齐,需要在这些函数之后重新设置文字居中即可
2021-07-13 16:07:09
3950
7
原创 qt设置快捷键后其他地方无法按键
我在菜单栏里加入了快捷键,导致我在其他窗口点击该键没有任何反应,也接受不到keyPressEvent,这会是什么原因呢?经检查发现是QAction默认的shortcutContext是Qt::WindowShortcut,也就是快捷键对整个窗口都有效的,只需要设置一下QAction的shortcutContext,setShortcutContext(Qt::WidgetShortcut);即可解决问题,使该快捷键只在菜单栏激活后有效,而不会拦截住其他窗口的键盘事件了。...
2021-06-29 19:08:25
1503
原创 QLineEdit随文字改变宽度
connect(this, &HPFolderLineEdit::textEdited, [ = ](){ setFixedSize(sizeHint());});QSize HPFolderLineEdit::sizeHint() const{ return QSize(fontMetrics().horizontalAdvance(text()) + 35, 30);}
2021-06-09 16:51:19
4189
原创 基于QTreeView和QFileSystemModel,如何做到展开/收缩文件夹分支时改变图标?
c++ //展开文件夹分支时改变QIcon connect(this, &QTreeView::expanded, this, [=](const QModelIndex &index){ //TODO }); //收缩文件夹分支时改变QIcon connect(this, &QTreeView::collapsed, this, [=](const QModelIndex &index){...
2021-05-30 14:13:21
1205
9
原创 QTreeView 设置背景色应用于整条
如图像qt项目栏一样,而不是只会在箭头右侧有背景色,目前发现左侧需要drawBranches配合实现,但是按下后右侧还会有边框,不知道有没有好的实现方法
2021-05-30 13:47:19
2282
3
原创 Qt 解决报错:QBackingStore::endPaint() called with active painter
Qt报错:QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?可能的错误原因:在已连接一个QPainter的情况下再次连接新的QPainter解决:将QPainter改为成员变量,在构造函数中生成 或者每次paintEvent时将QPainter*painter = new QPainter(this);改为QPaint.
2021-05-21 16:38:04
10487
8
原创 Qt5 信号槽连接 函数重载、参数不一致问题
Qt5中使用以下方式代替Qt4的信号槽连接,在编译时即对连接进行检测,提高了安全性。而Qt4的连接方式是基于字符串,只能在运行时进行检测。//Qt5方法connect(player, &MyClass::mySignal, this, &MyWidget::mySlot);但若是信号或槽有重载,由于这种方式没有标明参数,编译器就无法确定连接的是哪一个函数。解决方法如下://直接使用Qt4方法connect(player, SIGNAL(myS
2021-04-08 15:51:17
3280
原创 Ubuntu上SmartGit三十天试用到期解决办法
适用于19.1以上版本。cd~/.config/smartgit 进入里面数字(版本号)的文件夹。 删除license和preferences.yml文件。19.1以下版本删除settings.xml请尽量使用正版软件。
2021-03-30 10:24:14
1927
原创 Linux Ubuntu Qt Creator配置使用Artistic Style代码格式化插件
安装Qt Creator中 Help->About Plugins->C++ ->选中Beautifiersudo apt-get install astyle安装,重启Qt CreatorQt Creator中 Tools->Options->Beautifier1.General Tab下Automatic Formatting on File Save中:选中Enable auto format on file saveTool:选择Artistic St
2021-03-12 16:28:08
1139
原创 Android studio NDK 编译FFmpeg 、x264 报错arm-linux-androideabi-gcc: No such file or directory
NDK慢慢把clang作为主编译器,gcc将会被移除,r19版本以后的NDK版本已经没有arm-linux-androideabi-gcc文件了。https://developer.android.com/ndk/guides/standalone_toolchain?hl=zh-cn用clang编译可以参考如下文章。https://blog.youkuaiyun.com/lixiong0713/article/details/108508422?utm_medium=distribute.pc_relev
2021-03-09 14:18:21
1455
原创 魔兽世界终极版 北京大学C++课程
题目魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部。两个司令部之间是依次排列的若干城市,城市从西向东依次编号为1,2,3 .... N ( N <= 20 )。红魔军的司令部算作编号为0的城市,蓝魔军的司令部算作编号为N+1的城市。司令部有生命元,用于制造武士。两军的司令部都会制造武士。武士一共有 dragon 、ninja、iceman、lion、wolf 五种。每种...
2019-05-08 15:41:45
1001
空空如也
Qml 横向ListView滚轮事件失效问题
2022-06-14
Qt 窗口大小改变和修改位置同步
2021-11-09
Qt 如何读取系统的网络文件夹
2021-10-09
Qt QComboBox 下拉按钮 实现图标动画
2021-10-08
Qt 无法连接信号槽??
2021-09-13
一个不规则的QLabel,如何让上面的文字也不规则显示?
2021-09-08
Qt QTreeView QListView 如何做上下调整的动画?
2021-08-06
Qt 如何使QScrollBar点击长条任意处即可跳到相应位置并可拖动
2021-07-28
如何解决QLayout::setGeometry中加断点调试会导致程序崩溃?
2021-07-27
Qt QLineEdit 如何超过长度显示多行
2021-07-13
Qt QGraphicsView如何使用中文输入法?
2021-06-30
QScrollArea 部件resize时QScrollArea滚动条不更新
2021-06-23
正则表达式以.xml结尾且前面不得出现.如何实现
2021-06-22
正则表达式以.xml结尾且前面不得出现.如何实现
2021-06-22
qt 如何拖拽软件中的文件到系统资源管理器
2021-06-11
Qt 动画,如何使一个控件右移消失
2021-06-04
Qt 按钮按下后想触发QIcon图标旋转180°的动画
2021-05-20
Qt QPropertyAnimation bug
2021-05-20
Qt 想写一个滑动条是由低到高的三角形的slider
2021-05-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人