长春建站公众号,网站开发遇到的问题,韶关市建设局网站,有哪些可以做网站的企业1、QAbstractButton 属性
QAbstractButton 属性速查表属性名说明属性名说明autoExclusive自动排他性checked是否被选中autoRepeat是否启用自动重复down是否处于按下状态autoRepeatDelay初始延迟(毫秒)icon按钮上显示的图标autoRepeatInterval时间间隔(毫秒iconSize显示的图标的…1、QAbstractButton 属性
QAbstractButton 属性速查表属性名说明属性名说明autoExclusive自动排他性checked是否被选中autoRepeat是否启用自动重复down是否处于按下状态autoRepeatDelay初始延迟(毫秒)icon按钮上显示的图标autoRepeatInterval时间间隔(毫秒iconSize显示的图标的大小checkable是否可选中shortcut获取和设置快捷键text获取和设置显示的文本 ①、 autoExclusive bool 访问函数
bool autoExclusive() const;
void setAutoExclusive(bool); 描述了按钮的自动排他性若启用了该属性则属于同一父部件的可选中按钮的行为 就好像是在同一排他性组中的按钮一样。除了单选按钮默认为关闭。
②、 autoRepeat bool 访问函数
bool autoRepeat () const;
void setAutoRepeat(bool); 描述了按钮是否启用自动重复。当按钮处于按下状态(比如按下按钮不放)时会以固 定间隔发送 pressed() released() clicked()信号。默认为关闭。 经测试自动重复对 默认按钮无效也就是按下 enter 键时即使关闭自动重复默认按钮仍会重复发送 上述信号。
③、 autoRepeatDelay int 访问函数
int autoRepeatDelay() const;
void setAutoRepeatDelay(int); 自动重复的初始延迟(毫秒)
④、 autoRepeatInterval int 访问函数
int autoRepeatInterval() const;
void setAutoRepeatInterval(int); 自动重复的时间间隔(毫秒)
⑤、 checkable bool 访问函数
bool isCheckable() const;
void setCheckable(bool); 按钮是否可选中默认为可选中 ⑥、 checked bool 访问函数
bool isChecked() const;
void setChecked(bool) 按钮是否被选中(即是否处于选中状态)只有可选中按钮才能被选中。默认未被选中。 ⑦、 down bool 访问函数
bool isDown() const;
void setDown(bool); 按钮是否被按下(即是否处于按下状态)。若此属性为 true则按钮被按下。 若把此属性 设置为 true则不会发送 pressed()和 clicked()信号(经测试仍会发送这些信号)。默认 为 false。 ⑧、 icon QIcon 访问函数
QIcon icon() const;
void setIcon(const QIcon ); 按钮上显示的图标 ⑨、 iconSize QSize 访问函数
QSize iconSize() const;
void setIconSize(const QSize); 按钮上显示的图标的大小。默认大小由 GUI 样式定义。这是图标的最大大小较小 的图标不会被放大。 ⑩、 shortcut QKeySequence 访问函数
QKeySequence shortcut() const;
void setShortcut(const QKeySequence); 保存与按钮关联的助记符 QKeySequence 类型见后文 ⑪、 text QString 访问函数
QString text() const;
void setText(const QString); 按钮上显示的文本。若按钮没有文本则 text()返回一个空字符串。
示例 1按钮的排他性与自动重复
//m.h 文件的内容
#ifndef M_H
#define M_H
#includeQtWidgets
#include iostream
using namespace std;
class B : public QPushButton
{ Q_OBJECTpublic: B(QString s,QWidget *p0):QPushButton(s,p){}//若重写以下事件处理函数则使用该类创建的按钮将不会发送 Qt 内置的信号(比如 clicked()等)//void mousePressEvent(QMouseEvent *e){coutDendl;}public slots: //注 qt5.0 之后可使用普通函数作为槽函数。void f(){ coutFendl; }
};
#endif//m.cpp 文件的内容
#include m.h
int main(int argc, char *argv[]){QApplication a(argc,argv);//创建部件QWidget w; B *pb1new B(AAA,w); B *pb11new B(AAA1,w);QCheckBox *pb2new QCheckBox(BBB,w); QCheckBox *pb3new QCheckBox(CCC,w);QCheckBox *pb4new QCheckBox(DDD,w); QRadioButton *pb5new QRadioButton(EEE,w);QRadioButton *pb6new QRadioButton(FFF,w); //单选按钮默认具有排他性。QCheckBox *pb7new QCheckBox(GGG,w);//布局各部件pb1-move(22,22); pb11-move(99,22);pb2-move(22,77); pb3-move(99,77); pb4-move(155,77);pb5-move(22,122); pb6-move(99,122); pb7-move(155,122);pb1-setAutoRepeat(true); //pb1 开启自动重复pb1-setAutoRepeatDelay(1000); //设置初始延迟为 1 秒pb1-setAutoRepeatInterval(2000); //设置时间间隔为 2 秒//把按钮 pb1 的 clicked 信号与槽 f 关联。QObject::connect(pb1,QPushButton::released,pb1,B::f);pb2-setAutoExclusive(true); pb3-setAutoExclusive(true); //开启按钮的排他性pb11-setDown(true); //设置为按下状态pb7-setCheckable(false); //设置为不可选中。w.resize(300,200); w.show(); return a.exec();
}
结果 二、QAbstractButton 类中的成员函数 ①、 QAbstractButton(QWidget *parentQ_NULLPTR); //构造函数 ②、 QButtonGroup* group() const //该函数见后文。 返回此按钮所属的组若按钮不是任何 QButtonGroup 的成员则返回 0。
三、QAbstractButton 类中的信号 ①、 void clicked(bool checked false); 以下情形会发送此信号 鼠标点击按钮然后释放时注意按钮释放时才会发送。 调用 click()或 animateClick()函数时。 按下对应的快捷键或空格键时。 当调用 setDown()、 setChecked()或 toggle()函数时不会发送该信号。 若按钮是可选中的 当按钮被选中时 参数 checked 为 true若按钮未被选中 则为 false。 需要注意的是 QWidget 类并不发送此信号及 pressed 和 released 信号。
②、 void pressed(); 按下按钮时发送此信号 ③、 void released(); 释放按钮时发送此信号。 ④、 void toggled(bool checked); 每当可选中按钮切换状态时都会发送此信号。若按钮被选中则参数 checked 为 true若按钮被取消选中则为 false。 按钮状态的改变可能是由于用户操作 click()槽函数或 setChecked()函数被调用的 结果。 在发出信号前将更新排他性按钮组中按钮的状态
四、QAbstractButton 类中的槽 ①、 void animateClick(int m100); 执行动画单击即立即按下按钮然后在 m 毫秒之后释放。在释放按钮之前再次调 用此函数会重新设置计时器。所有与单击有关的信号都会根据情况发出。若该按钮 被禁用则此功能不起作用。 ②、 void click() 此槽接收来自与点击相关的常见信号若按钮是可选中的则切换该按钮的状态。若 该按钮被禁用则此槽函数不起作用。 ③、 void toggle(); 切换可选中按钮的状态。
示例 2动画点击与状态切换
//m.h 文件的内容。
#ifndef M_H
#define M_H
#include QtWidgets
#include iostream
using namespace std;
class B:public QPushButton{ Q_OBJECTpublic: B(QString s,QWidget *p0):QPushButton(s,p){}public slots: //注 qt5.0 之后可使用普通函数作为槽函数。void f(){ coutFendl; }void g(){ animateClick(4000); }//执行动画点击即按下按钮 4 秒之后按钮才会被弹起
};
#endif//m.cpp 文件的内容
#include m.h
int main(int argc, char *argv[]){QApplication a(argc,argv);//创建部件QWidget w; B *pb1new B(AAA,w); B *pb11new B(AAA1,w);QCheckBox *pb2new QCheckBox(BBB,w);//布局各部件pb1-move(22,22); pb11-move(99,22); pb2-move(22,77);//把各按钮与相应的槽关联。QObject::connect(pb1,QPushButton::clicked,pb2,QCheckBox::toggle);QObject::connect(pb2,QCheckBox::toggled,pb1,B::f);QObject::connect(pb11,QPushButton::pressed,pb1,B::g);w.resize(300,200); w.show(); return a.exec();
}
结果