簡體   English   中英

滾動條控制滾動Qt中的滾動區域

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM