[英]Scroll Bar Controlling scrolling a Scroll Area in Qt
我是QT框架的新手,請耐心等待...
我得到了這個簡單的任務,我有一系列Qlabel,每個Qlabel都設置為.png圖片。
這些Multiple Qlabels不適合屏幕,因此這里的滾動條非常方便...
所以我將所有項目插入了“滾動”區域
看一下情況:
我希望滾動條控制滾動區域上下滾動
我已經創建了插槽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,我做對了,還是他們做這件事的另一種簡單方法?
-slideMoved()如何通過上下滾動區域來處理事件
請具體說明,因為我是新手,對此我將不勝感激
謝謝
如果要創建插槽,則必須指定它是插槽。
這樣完成
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;
}
您可以在此處閱讀有關信號和插槽的更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.