0
QSlider의 찾기 메소드를 재정의하기위한 사용자 정의 클래스를 작성했습니다. 기본적으로이 클래스는 사용자가 클릭 한 위치에서 슬라이더를 찾는 것을 허용합니다. MAIN.CPP사용자 정의 클래스 용 신호 및 슬롯
QApplication app(argc, argv);
MainWindow player;
Tbslider tbslider;
GSTEngine listen
app.connect(&tbslider, SIGNAL(tbJump(int)), &listen, SLOT(jump(int)));
에
tbslider.h
#ifndef TBSLIDER_H
#define TBSLIDER_H
#include <QSlider>
#include <QObject>
class Tbslider: public QSlider
{
Q_OBJECT
public:
explicit Tbslider(QWidget *parent=0);
signals:
void tbJump(int);
protected:
void mousePressEvent(QMouseEvent *event);
private:
QSlider *qslider;
};
#endif // TBSLIDER_H
tbslider.cpp
#include <iostream>
#include <QEvent>
#include <QPoint>
#include <QMouseEvent>
#include "tbslider.h"
Tbslider::Tbslider(QWidget *parent):QSlider(parent)
{
}
void Tbslider::mousePressEvent(QMouseEvent *event)
{
QSlider::mousePressEvent(event);
std::cout<<"\nX co-ordinate"<<event->x();
std::cout<<"\nY co-ordinate"<<event->y();
int value =(minimum() + ((maximum()-minimum()) * event->x())/width()) ;
setValue(value);
emit tbJump(value);
}
신호 및 슬롯은 상기 코드가 작동하도록되어 있었다. 내가해야 할 일이 더 있니?
구성 요소를 가능한 한'QSlider'와 호환되게하려면 신호를 사용하십시오. 신호를 만들 필요가 없으며 'valueChanged (int value)'를 사용하십시오. 이미'setValue (int)'에 의해 생성됩니다. – cmannett85
어떻게 작동하지 않습니까? – cmannett85
다른 클래스의 공용 슬롯을 호출하기 위해 신호를 내 보냅니다. –