我是QT框架的新手,所以请耐心等待......
我得到了这个简单的任务,我有一系列的Qlabels,每个都设置为.png pic
这些多个Q标签不适合屏幕,因此这里的滚动条会很方便......
所以我在Scroll区域中插入了所有项目
看一下情况:
我希望滚动条控制滚动区域向上和向下滚动
我创建了插槽slideMoved(),用于在移动幻灯片时吸收滚动条生成的信号
这是Form.cpp类:
//Form.cpp
#include "form1.h"
#include "form.h"
#include "ui_form.h"
#include "ui_form1.h"
#include<QScrollArea>
#include<QScrollBar>
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
}
Form::~Form()
{
delete ui;
}
void Form::slideMoved()
{
}
我的问题如下,
-am我这样做,或者他们是另一种更简单的方法吗?
-how should slideMoved()通过向上和向下滚动滚动区域来处理事件
请具体,因为我是新手,我很感激
谢谢
答案 0 :(得分:0)
如果要创建插槽,则必须指定它是插槽。
这样就完成了
private slots:
void slideMoved();
然后你必须以你的方式实现这个插槽。
void Form::slideMoved(int val)
{
...
}
最后,您必须将信号连接到插槽,以便在信号发出时触发您的插槽。
connect(sender,SIGNAL(sliderMoved(int)),receiver,SLOT(slideMoved(int)));
然后,您可以创建一个新变量来保存上一个滑块值。 每次执行您的插槽时,您都会将之前的值与新值进行比较,以便了解移动。
private:
int previousValue;
插槽可以是这样的。
void Form::slideMoved(int val)
{
if(val<previousValue) qDebug() << "Previous value is smaller";
else qDebug() << "Previous values is bigger";
previousValue = val;
}
您可以阅读有关信号和广告位here
的更多信息