注:这是本人在网络上听课后的总结笔记,仅供参考. --QAbstractButton,QPushButton,QCommandLinkButton,QtoolButton,QRadioButton,QCheckBox-- 按钮控件 一,QAbstractButton 介绍: 所有按钮控件的基类,提供按钮的通用功能,继承QWidget,这是一个虚拟类(抽象类),并不能直接使用,必须由子类来调用api,其中:QpushButton,QRadloButton,QCheckBox,QtoolButton都是继承QAbstractButton,还有QCommandLinkButton是继承QpushButton 功能: 提示文本 setText()#设置按钮提示文本 text()#获取按钮提示文本 图标相关 setIcon(QIcon('图标路径'))#设置图标 setIconSize(QSize(宽,高))#设置图标大小 icon()#获取图标 iconSize()#获取图标大小 设置快捷键 通过指定的快捷键,触发按钮的点击 方式1:有提示文本的,在设置文本时,只要在需要设置快捷键的字母前加&符号,例如setText('&abc'),这样在快捷键就是alt+a, 方式2:没有提示文本的,setShorcut("Alt+a"),这样可以设置没有文本的按钮的快捷键 自动重复 setAutoRepeat()#设置自动重复,True或False setAutoRepeatInterval(毫秒)#设置自动重复检查间隔 setAutoRepeatDelay(毫秒)#设置初次检测延迟 autoRepeat()#获取自动重复 autoRepeatInterval()#获取自动重复间隔 autoRepeatDelay()获取自动重复初次延迟 状态 setDown()#设置按钮被按下 isDown()#查看是否按下 isCheckable()#查看是否可以被选中 setCheckable()#设置是否可以被选中,True或False isChecked()#查看是否被选中 setChecked()#设置是否被选中 toggle()#切换选中与非选中状态 排他性 如果同时存在多个按钮,而此时所有按钮设置了排他性,则在同一时刻只能选中一个按钮 autoExclusive()#查看是否排他,一般按钮都是False,只有单选按钮是True setAutoExclusive()#设置是否排他,True或False 点击 click()#模拟普通点击 animateClick(毫秒)#动画点击,按钮的点击样子会和实际点击时一样 设置有效区域 重写hitButton(QPoint)#有效返回True,无效返回False ****判断两点之间的距离,使用勾股定理 x²+y² = z² z = √(x²+y²) 信号: pressed()#鼠标按下信号 released()#鼠标释放,控件内松开鼠标或者鼠标未松开但移出控件范围后 clicked()#控件内按下+控件内释放,也就是一次完整的点击 toggled()#切换信号,一般在单选或复选框中使用 二,QPushButton 介绍: 用来让用户点击来完成某个动作的控件,一般为矩形 功能: 创建按钮控件: QPushButton()#括号中可以是空代表无父控件,可以是父控件名,可以是文本+父控件名表示创建时设置提示文本和父控件,也可以是图标+文本+父控件名表示创建时设置图标文本和父控件 菜单: setMenu(QMenu)#设置菜单 menu()#获取菜单 showMenu()#展示菜单 补充:QMenu: addMenu(QMenu)#添加子菜单 addSeparator()#添加分割线 addAction(QAction)#添加行为动作 QMenu控件设置: setTitle(str)#设置文本 setIcon(QIcon)#设置图标 QAction设置: setText(str)#设置文本 setIcon(QIcon)#设置图标 triggered#信号 边框是否保持扁平: setFlat()#默认值是False,设置了此属性,则除非按下按钮,否则大多数样式都不会绘制按钮背景 isFlat()#获取按钮边框是否扁平 默认处理: setAutoDefault()#设置为自动默认按钮 setDefault()#设置默认按钮 信号: 主要继承QAbstractButton和QWidget 三,QCommandLinkButton 介绍: 命令链接按钮,它的用途类似单选按钮的用途,因为它用于在一组互斥选项之间进行选择,命令链接按钮不应单独使用,而应作为想到和对话框中单选按钮的替代选项,外观通常类似于平面按钮的外观,但除了普通按钮文本外,它还允许描述性文本 功能: 创建 QCommandLinkButton()#括号里,可以是父对象或者,标题+父对象,或者,标题+描述+父对象 描述设置: setDescription()#设置描述 四,QtoolButton 介绍: 提供了一个快速访问按钮,通常是在工具栏内部使用,工具按钮通常不显示文本标签,而是显示图标,如果同时设置了文本和图标,则只显示图标 功能: 创建按钮 QtoolButton()#括号里可以填父控件 设置文本,图标,工具提示, 大多都是继承父类方法 setText()#设置文本 setIcon()#设置图标 setIconSize()#设置图标大小 setToolTip(str)#设置工具提示 按钮样式风格 setToolButtonStyle()#设置风格取值,可以有以下几种: Qt.ToolButtonIconOnly#仅显示图标 Qt.ToolButtonTextOnly#仅显示文本 Qt.ToolButtonTextBesideIcon#文本显示在图标旁边 Qt.ToolButtonTextUnderIcon#文本显示在图标下方 Qt.ToolButtonFollowStyle#遵循风格 设置箭头 setArrowType()#设置箭头,有以下几种: Qt.NoArrow#无箭头 Qt.UpArrow#向上箭头 Qt.DownArrow#向下箭头 Qt.LiftArrow#向左箭头 Qt.RightArrow#向右箭头 自动提升 setAutoRaise()#True或False 菜单 setMenu(QMenu) 菜单弹出模式 setPopupMode()#设置菜单弹出的触发方式,有以下几种: QToolButton.DelayedPopup#鼠标按住一会才会显示,类似浏览器后退按钮 QToolButton.MenuButtonPopup#有一个专门的指示箭头,点击箭头才会显示 QToolButton.InstantPopup#点了按钮就显示,点击信号不会发射 信号: trggered()#当点击某个action时触发,并会将action传递出来 五,QRadioButton 介绍: 一般用于给用户提供若干选项中的单选操作,在同一组或同一父控件内只能选中一个单选按钮, 功能: 创建按钮 QRadioButton()#括号里可以填父控件或文本+父控件, 信号: 全部继承父类 补充: 分组:在同一组或同一父控件内只能选中一个单选按钮 第一种方法:放在不同父控件中,但是不会使用这种方法 第二种方法:创建一个按钮组QButtonGroup,也就是抽象的按钮容器,可以将多个按钮划分为一组,但是按钮组不具备可视化的效果,一般放的都是可以被检查的按钮 继承:QObject 功能: 创建按钮组 QButtonGroup() 在按钮组中添加按钮 addButton(按钮名,id=-1)#id就是给按钮组中的按钮设置一个id号,id=-1是默认值,代表会自动分配,暂时不用写, 查看按钮 buttons()#查看所有按钮组中的按钮 button(ID)#根据ID获取对应按钮 checkedButton()#获取选中的按钮 移除按钮 removeButton()#移除按钮组中的按钮 绑定和获取ID setId(按钮名,id号)#设置ID id()#获取ID checkid()#查看选中的按钮的id是多少,如果没有选中的按钮结果为-1,所以在设置id时,不要使用-1,最好也不要使用负数 独占设置 setExclusive()#设置按钮组中所有按钮为唯一,也就是独占 exclusive()#查看是否独占 信号: buttonClicked()#按钮组中的按钮被点击时发射信号 buttonPressed()#按钮组中的按钮被按下时发射信号 buttonReleased()#按钮组中的按钮被释放时发射信号 buttonToggled()#按钮组汇总的按钮切换状态时发射信号, #按钮组中的信号包含2个参数,一个是iD,一个是按钮,使用方法是buttonClicked[int]为id,buttonClicked后面上面都不加就是获取按钮 六,QCheckBox 介绍: 一般用于给用户提供若干选项中的多选操作,可以都选,也可以都不选,也可以选一部分 功能: 创建按钮 QCheckBox()#括号里可以填父控件或文本+父控件 设置是否拥有三态 复选框有三种状态,选中,未选中,部分选中 setTristate()#True或False 设置复选框状态 setCheckState()#包括Qt.Unchecked未选中,Qt.PartiallyChecked部分选中,Qt.Checked被选中 信号: stateChanged()#选中或清除时发射,0代表未选中,1代表部分选中,2代表选中 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:BB贩卖团,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |