最简单的例子就是QTreeWidget里面添加了内嵌了好几个widget作为子节点,这时候默认的滚动条滚动时,很跳跃,是按照每个widget大小为单位控制单步的滚动距离,这时候如下设置即可,实现平滑滚动
setVerticalScrollMode
(
QAbstractItemView::ScrollPerPixel
)
最简单的例子就是QTreeWidget里面添加了内嵌了好几个widget作为子节点,这时候默认的滚动条滚动时,很跳跃,是按照每个widget大小为单位控制单步的滚动距离,这时候如下设置即可,实现平滑滚动 setVerticalScrollMode(QAbstractItemView::ScrollPerPixel)...
基于qwt-6.1实现的
时
间轴滑动条,主要是slider参数设置技巧,设定起始结束日期,自动绘制
时
间轴,qwt请自行下载编译,
qt
我用的版本是5.7.1,vs2013。主要代码如下:
QDateTime starData = QDateTime::fromString(dataS, "yyyy-MM-dd");
QDateTime endData = QDateTime::fromString(dataE, "yyyy-MM-dd");
int dayCount = starData.daysTo(endData);
_qwtSlider->setScale(
QwtDate::toDouble(starData),
QwtDate::toDouble(endData)
_qwtSlider->setTotalSteps(dayCount);
_qwtSlider->setPageSteps(30);
double space = QwtDate::toDouble(endData) - QwtDate::toDouble(starData);
_qwtSlider->setScaleStepSize(space/12);
_qwtSlider->setScaleDraw(_qwtDsd);
_qwtSlider->setHandleSize(QSize(20, 10));
解决列表滑动卡死问题
项目运行环境:window10 系统的平板,使用到
qt
列表(仿照android列表),但是qwidget对于触屏操作支持个人感觉不是太好。列表滑动
时
有加速和拖动效果,测试发现,快速滑动没有结束或者拖动没有恢复
时
,返回父界面,再次进入子界面会卡死。困扰很久,大量测试最后发现在析构函数增加
滚动
停止能解决问题,记录一下,同
时
也给遇到同样问题的小伙伴一种解决思路
QScroller...
verticalScrollMode和horizontalScrollMode属性用于控制
视图
如何在垂直方向和水平方向
滚动
内容。
滚动
可以按像素或按项目进行,默认值来自通过此属性控制
视图
如何水平
滚动
其内容。
滚动
可以按像素或按项目进行。其默认值为通过QStyle.SH_ItemView_ScrollMode指定的样式定义的
滚动
模式。
在
Qt
中,可以使用QScrollArea控件来实现
滚动条
功能。具体实现步骤如下:
1. 在
Qt
Designer中或者手动创建一个QScrollArea控件,并设置其父控件。
2. 将需要显示的内容放置在QScrollArea控件内的QWidget控件中。
3. 设置QWidget控件的大小,使其大于QScrollArea控件的大小。
4. 将QWidget控件设置为QScrollArea控件的子控件。
5. 设置QScrollArea控件的
滚动条
策略,可以使用setVertical
ScrollBar
Policy()和setHorizontal
ScrollBar
Policy()函数来设置。
6. 在需要
滚动
的
时
候,使用Q
ScrollBar
控件的setValue()函数来设置
滚动条
的值,从而实现
滚动
。
下面是一个示例代码:
```cpp
// 创建QScrollArea控件和QWidget控件
QScrollArea *scrollArea = new QScrollArea(parent);
QWidget *widget = new QWidget(scrollArea);
// 设置QWidget控件的大小
widget->setMinimumSize(800, 600);
// 设置QWidget控件为QScrollArea控件的子控件
scrollArea->setWidget(widget);
// 设置
滚动条
策略
scrollArea->setVertical
ScrollBar
Policy(
Qt
::
ScrollBar
AlwaysOn);
scrollArea->setHorizontal
ScrollBar
Policy(
Qt
::
ScrollBar
AlwaysOn);
//
滚动
到指定位置
scrollArea->vertical
ScrollBar
()->setValue(100);
scrollArea->horizontal
ScrollBar
()->setValue(100);
在上面的代码中,我们创建了一个QScrollArea控件和一个QWidget控件,并将QWidget控件设置为QScrollArea控件的子控件。然后,我们设置了
滚动条
策略,并使用setValue()函数设置了
滚动条
的值,实现了
滚动条
功能。
Linux下g++编译动态库的问题relocation R_X86_64_32 against `.rodata‘ can not be used when making a shared objec
Linux下g++编译动态库的问题relocation R_X86_64_32 against `.rodata‘ can not be used when making a shared objec
Tisfy:
Linux下g++编译动态库的问题relocation R_X86_64_32 against `.rodata‘ can not be used when making a shared objec
向彪-blockchain:
QT4.8编译出现MAX_PATH未定义
HiGoodBoy