按钮部件:
QAbstractButton是按钮部件的抽象基类,提供按钮通用的功能。它的子类:复选框QCheckBox,单选框QPushButton,QRadioButton,和工具按钮QtoolButton.
一般要把一组按钮放到一个QGroupBox中进行管理。
QGroupBox:
QGroupBox组件提供有一个标题的盒框架和快捷键,并且在自身内显示其他各种不同的组件,标题在最上面,快捷键把快捷键的焦点移动到GroupBox中的一个子组件上。它可以设置标题和标题的对齐方式,GroupBox有Checkable属性,在GroupBox中的子组建有效或者是无效取决于GroupBox是否 Checked.还可一使用flat属性来设置最小化它对空间的消耗。
QCheckBox:
CheckBox可以设置tristate属性,让它拥有不改变状态,选中状态,未选中状态3种。
CheckBox组件提供一个复选框和一个文本框。bool istristate() true:三态的复选框,false:复选框有两种状态。 SetChecked 设置是否选中。SetCheckState(Qt::CheckState) checked unchecked partiallyChecked 部分选中。isChecked()来查看一个按钮是否被选中。
对于选择后的操作可以关联stateChanged()信号和槽,也可以使用
// SIGNAL QCheckBox::StateChanged
StateChanged(int state):无论何时CheckBox的状态改变了,这个函数就发送状态信号。
QLineEdit:
单行文本编辑器,允许用户输入和编辑单行的文本内容。
1.显示模式 4种:
Normal:
NoEcho:
Password:
PassWorldEchoOnEdit:
2.输入掩码:
inputMask来限制输入的内容,字母大写表示必须输入,(*)括号中小写表示可留空
A(a) A~Z,a~z;
N(n) A~Z,a~z,0~9;
X(x) 任意字符;
9(0) 0~9;
D(d) 1~9;
H(h) 16进制数;
B(b) 2进制数;
>(<) 后面的字母转换为大写|小写
! 停止大小写转换
/ 特殊字符真常显示
# +/- /0~9
//eg:lineEdit3->setInputMask("0000-00-00");
3.输入验证:
验证器validator,可以对输入进行验证,用法:
QValidator *validator = new QIntValidator(1,1000,this);
lineEdit4->setValidator(validator); //lineEdit4只能输入一个1~1000内的整数
QIntValidator类:
The QIntValidator class provides a validator that ensures a string contains a valid integer within a specified range.
QIntValidator类提供一个可以确保一个包含一个特定整数范围的 字符串 验证。
QDoubleValidator 设置浮点数。如果需要设置更一般的约束,就需要正则表达式了。
//获得焦点和清除焦点
setFocus(Qt::FocusReason);
clearFocus();
4.自动补全
QLineEdit还有很强大的自动补全功能,用QCompleter实现。
用法: QStringList list;
list<<"Qt"<<"completer"<<"apple"<<"banana"<<"coco"<<"display"<<"enable"<<"focus"<<"glory"\
<<"hero"<<"input"<<"jobornize"<<"kiss"<<"lollipop"<<"monster"<<"navite"<<"oppo";
QCompleter *completer = new QCompleter(list,this);
//设置大小写不敏感
completer->setCaseSensitivity(Qt::CaseInsensitive);
lineEdit1->setCompleter(completer);
QCompleter:
QCompleter类基于条目item模式提供匹配,在任何Qt Widget中都可用,当用户开始输入的时候它就会基于提供的Wordlist提供各种可能的匹配。在词列表是静态的简单应用中可以用QStringList作为补全条目的构造器。
QAbstractSpinBox类:
是一个抽象基类,提供了一个竖直设定框和一个行编辑器来显示设定值,它的3个子类,QDateTimeEdit,QSpinBox和QDoubleSpinBox分别来完成日期,整数,浮点数的设定。
timeEdit = new QTimeEdit(this);
dateEdit = new QDateEdit(this);
dateTimeEdit = new QDateTimeEdit(this);
//时间的显示格式
timeEdit->setDisplayFormat("h:mm:ssA");
//用弹出的日历部件来设置日期
dateEdit->setCalendarPopup(true);
//设置目前的时间
dateTimeEdit->setDateTime(QDateTime::currentDateTime());
//设置显示时间的格式
dateTimeEdit->setDisplayFormat(tr("yyyy 年 MM 月 dd 日 ddd HH:mm:ss "));
QspinBox:
Spin Box widget,inherited from QAbstractSpinBox
spinBox 的属性:后缀suffix,前缀prefix,最小值minimum,最大值maximum,singleStep每次变化的步值,默认是1。
DoubleSpinBox增加了decimals来设置小数点的位数。
程序中使用value()来获取设置的值。
如果新值和原始的值不同setValue()会发送valueChanged()的信号.
滑块部件:QAbstractSlider
它可以由滑块定位来确定一个区间内的任意值,这个抽象基类有2个子类,QScrollBar,QSlider,Qdial, ScrollBar用在ScrollArea中来实现滚动区域,QSlider用来实现音量控制或者播放器的进度,QDial是一个表盘。
QScrollBar:
该组件提供垂直或者水平方向的滑动条。
构造函数:QScrollBar ( Qt::Orientation orientation, QWidget * parent = 0 )
Qrientation: Qt::Horizontal
Qt::Vertical
属性:maximum最大值,minimum最小值,singleStep每一步的步值,PageStep每页的步长,就是按pageUp,pageDown的值,默认是10。 tracking 默认是true即滑块没改变一个值就会发送一个valueChanged()信号;设置为false的时候只是在鼠标键松开的时候发送valueChanged()信号。
invertedApperance属性设置滑块所在的位置,TickPosition 设置刻度的位置,默认没有刻度;TickInterval用来设置刻度间隔。
Dial:
属性:wrapping,设置是否首尾相连,notchTarget设置刻度之间的间隔,默认是3.7像素。notchesVisibel设置是否显示刻度。它的信号:SliderMoved(int)继承于QAbstractSlider。
好多的属性都来自QAbstractSlider。
//其实,多子棋的棋子数目选择的时候就可以用QSpinBox
// words
flat: adj:平坦的,扁平的;浅的,单调的
n:平地,平面,公寓
vi:变平
vt:使变平
consumption: n:消费,消耗
toggle:n:开关,触发器;拴扣
vi:栓牢,系紧
trigger:vt:引发,引起,触发
n:扳机
n:[电子]触发器
constructor:n:构造函数,构造器;建造者。
discrete:
adj:离散的,不连续的
n:分立元件,独立部件
decimal: adj:小数的,十进位的;
n:小数;
orientation:n:方向,定向