📄 kspinbox.h
字号:
/* This file is part of the KDE libraries Copyright (C) 1997 Andre Fornacon (afc@fh-zwickau.de) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*/// -*- c++ -*-// KSpinBox.h - cycle through a bunch of items// started: 970506 afo// [Last modified: 970717 09:51:42 by afo@fh-zwickau.de (Andre Fornacon)]#ifndef _KSPINBOX_H#define _KSPINBOX_H#include <qpushbutton.h>#include <qlineedit.h>#include <qlabel.h>#include <qtimer.h>#include <qstrlist.h>/// KSpinBox - cycle trough a bunch of items/** The KSpinBox Widget lets the user cycle trough a bunch of items. this class alone doesn't do really usefull things it provides the base for things like KNumericSpinBox or KListSpinBox. You can use it in two ways: 1. The "is A" Variant : derive a subclass from KSpinBox and implement your own functionality 2. The "has A" Variant : instantiate a KSpinBox object and catch the valueIncreased() and valueDecreased() signals and do what you want in the slots.*/class KSpinBox : public QWidget{ Q_OBJECTpublic: /** construct a KSpinBox Widget */ KSpinBox(QWidget *parent=0,const char *name=0,int align=AlignLeft); ~KSpinBox(); /** get the value shown the text field */ const char *getValue(); /** set the value which should be displayed in the text field */ void setValue(const char *); /** query if the user is allowed to edit the values */ bool isEditable(); /** decide if the user can edit the values or not */ void setEditable(bool); /** set the alignment of the text field. possible values for align are AlignLeft, AlignCenter, AlignRight */ void setAlign(int align); /** get the alignment of the text field. possible return values AlignLeft, AlignCenter, AlignRight */ int getAlign(); QSize sizeHint(); signals: void valueIncreased(); void valueDecreased(); public slots: void slotIncrease(); void slotDecrease(); protected slots: void slotStartIncr(); void slotStopIncr(); void slotStartDecr(); void slotStopDecr(); protected: void resizeEvent(QResizeEvent *); QLabel *_label; QLineEdit *_edit; QPushButton *_incr,*_decr; private: bool _editable; QTimer *_incrTimer,*_decrTimer; int _align; };/// KNumericSpinBox - cycle trough a range of numeric values/** The KNumericSpinBox Widget lets you cycle trough a range of numeric values. <br> you can set the minimum and minimum of the range . it's possible to specify the step - the value which is used for increment and decrement. <p> Warning: if you set let the user edit the values through a call to setEditable(TRUE) the behaviour is undefined, e.g.. the range isn't checked */class KNumericSpinBox : public KSpinBox{ Q_OBJECTpublic: /** called if you create a KNumericSpinBox widget */ KNumericSpinBox(QWidget *parent=0,const char *name=0,int align=AlignLeft); /** called if you destroy a KNumericSpinBox widget */ ~KNumericSpinBox(); /** set the value which should be displayed in the text field */ void setValue(int value); /** get the value shown in the text field */ int getValue(); /** return the current value used for increment and decrement */ int getStep(); /** set the value used for increment and decrement */ void setStep(int step); /** get the currently allowed range of values */ void getRange(int &minimum, int &maximum); /** set the range allowed range of values */ void setRange(int minimum, int maximum); public slots: void slotIncrease(); void slotDecrease();private: int _step; int _min,_max;};/// KListSpinBox - cycle trough a supplied list of items/** The KNumericSpinBox Widget cycles trough a supplied list of items you can use it to let the user select things like day of week, month' or somethings like that. look into testkspinbox.cc for samples */class KListSpinBox : public KSpinBox{ Q_OBJECTpublic: /** called if you create a KListSpinBox widget */ KListSpinBox(QStrList *list,QWidget *parent=0,const char *name=0,int align=AlignLeft); /** called if you destroy a KListSpinBox widget */ ~KListSpinBox(); /** set the index of the list item to be shown */ void setIndex(unsigned int index); /** get the index of currently displayed list item */ unsigned int getIndex(); public slots: void slotIncrease(); void slotDecrease();private: QStrList *_list; unsigned int _index;};#endif // _KSPINBOX_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -