简要:
继承关系【QWidget --> QAbstractButton】,【抽象按钮】控件,按钮的基类 是抽象类(使用时需子类化) 相关子类:普通按钮(QPushButton)、链接按钮(QCommandLinkButton)、单选按钮(QRadioButton)、复选框按钮(QCheckBox)、工具按钮(QToolButton) 学习建议:首先了解一下"信号与槽"机制
功能作用:
1. 提示文本:setToolTip(str) 2. 图标相关: setIcon(QIcon(str_img)):设置图标 setIconSize(QSize(w,h)):设置图标尺寸 icon():获取图标 iconSize():获取图标大小 3. 设置快捷键: setText("*&key*"):通过该该方法中加入“&”符号,实现Alt + ke快捷点击 setShortcut(str):设置快捷键方法,str例如:"Alt+S" 4. 自动重复: 结合信号与槽使用,能重复发出信号 setAutoRepeat(bool):是否设置为自动重复 setAutoRepeatInterval(ms):设置自动重复的时间间隔 setAutoRepeatDelay(ms):设置自动重复的初始延迟时间(延迟时间过后才开始频率地自动重复) autoRepeat() --> bool autoRepeatInterval() --> int autoRepeatDelay() --> int 应用场景:当用户点击按钮后不松开,重复性响应方法事件 5. 状态: setDown(bool):是否设置按钮为被按下状态(当被点击时退出按下状态) setChecked(bool):是否设置按钮被选中 setCheckable(bool):设置是否按钮是可以选中的 toggle():切换选中与非选中状态 isDown() --> bool isChecked() --> bool isCheckable --> bool 继承状态(QWidget): setEnable(bool) isEnable() --> bool 6. 排他性 简要:如果同时存在多个按钮,而此时所有按钮有设置了排他性,则在同一时刻只能选中一个按钮(同级按钮控件)。是相对 于同级按钮控件来说,即有相同的直接父控件;如果直接父控件不同,则排他性在按钮控件相互间无关系、不影响 setAutoExclusive(bool):是否设置为排他性 autoExclusive() --> bool 注意:按钮默认是有排他性的 应用场景:设定按钮组中的按钮,单选特性 7. 点击: 简要:代码式模拟一次点击 click():普通点击 animateClick(msc):动画点击,有动画效果的点击,msc动画持续时间 hitButton(QPoint):设置点击有效区域,可通过重写该方法对QPoint进行判断,返回Flase:无效;返回True,有效。
信号:
pressed:鼠标按下信号 released:鼠标释放信号 clicked:控件内按下 + 控件内释放信号 toggled(bool isChecked):选中状态切换信号(一般在单选框或复选框中使用)
自绘按钮:
步骤:通过继承该类并复写painterEvent方法(抽象方法),并在该方法内通过相关方法绘制“需求按钮” 下面简单提一下需要绘制按钮使用到的方法: QPainter(QPaintDevice): 创建“画家”对象 QPainterDevice:“画纸” --> “画家”配置对象(绑定“画纸”) QPen(QColor,*args) 创建一个“画笔对象” QColor:颜色对象 painter.setPen(pen): “画家”设置(选择)“笔” painter.draw*(**args): “画家”进行绘画