QT 滑动按钮的实现.doc
文本预览下载声明
方法一:
mouselabel.h
#ifndef MOUSELABEL_H
#define MOUSELABEL_H
#include myslider.h
class MySliderMenu;
//为做设置界面里一个漂亮滑块而写的类。。。
class mouseLabel : public QLabel
{
friend class MySliderMenu;
Q_OBJECT
private:
QString ImageBgPath;
QString ImageSwPath;
MySliderMenu *FocusLabel;
bool releaseFlag;
public:
mouseLabel(QWidget *parent,MySliderMenu *focusLabel);
void mousePressEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *ev);
void setTwoImage(QString ImageBg,QString ImageSw);
};
#endif // MOUSELABEL_H
----------------------------------------------------------------
myslider.h
class mouseLabel;
//为做设置界面里一个漂亮滑块而写的类。。。
class MySliderMenu :public QLabel
{
friend class mouseLabel;
Q_OBJECT
private:
QPixmap PixmapBg;
QPixmap PixmapSw;
QLabel *ImageBgLabel;
QLabel *ImageSwLabel;
// QLabel *TextBgLabel;
mouseLabel *TextSwLabel;
int SliderId;
int xPos;
int yPos;
int State;
public:
MySliderMenu(QWidget * parent,int x, int y, QString imageBgPath, QString imageSwPath,int nSliderID);
void setPosition(int x,int y);
void moveImageSw(int pos);
void moveImageSwLittle(int pos);
void mousePressEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *ev);
int getSliderID();
int getState();
};
//extern MySliderMenu MySlider;
#define MENU_ON 1
#define MENU_OFF 2
#endif // MYSLIDER_H
-----------------------------------------------
mouselabel.cpp
#include mouselabel.h
#include myslider.h
mouseLabel::mouseLabel(QWidget *parent,MySliderMenu *focusLabel):QLabel(parent)
{
FocusLabel = focusLabel;
releaseFlag = true;
}
void mouseLabel::mousePressEvent(QMouseEvent *e)
{
}
void mouseLabel::mouseReleaseEvent(QMouseEvent *e)
{
releaseFlag = true;
if(FocusLabel-getState() == MENU_OFF)
{
FocusLabel-moveImageSw(MENU_OFF);
}else
{
显示全部