一、Qt Widgets 问题交流
1.QObject多继承报错
父类列表中只能有一个QObject或其派生类:
并且QObject需要写在父类列表的第一个:
所以,正确写法如下:
有些控件具有子控件或者view,事件被其截获,我们需要把过滤器设置到子部件才能截获到这些事件。
以双击事件为例,有如下过滤器:
在QComboBox可编辑状态下,可以这样写:
通过debug打印的内容可以看到点击编辑区域实际上是被QLineEdit子部件截获了。
在QListView中通过viewport()来获取内部QWidget*指针:
看看是否是eventFilter函数处理相关事件后返回了true(返回true就不会再继续传递了)。
以ListWidget为例,过滤器中双击返回true后ListWidget的双击事件信号就不能触发了:
可以看到并没有打印“double click”,这种情况我们可以不返回rue:
这时点击item就能正常触发双击信号了。
4.QTreeView/QTreeWidget展开/收起节点展开调用expand相关的函数,收起调用collapse相关的函数。
Qt中有QLocale对象,封装了Locale的属性和方法,用来在不同语言下,实现各种数字与表达它们的字符串之间的转换。
ui->calendarWidget->setLocale(QLocale(QLocale::C,QLocale::UnitedStates));
通过上面的代码,我就把日历的Locale设置为了英国,于是就显示英文(下图左):
QLocale也可以用在格式化输出中:
QLocale currentlocale = QLocale::system();
qDebug()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?