1.按钮常用的信号
按钮常用的信号有clicked、pressed和released。clicked点击,pressed按下,release释放,一般来说后两者经常放在一块使用,按下一种状态,释放按钮又是另一种状态,对于普通的点击clicked基本能满足要求。
// Signals
void clicked(bool checked = false)
void pressed()
void released()
2.按钮的自动重复使用
默认按钮长按只会按一次计算,比图说长按n秒,也是依据按钮按下一次计算,而有时候的需求是长按n秒想要响应按下多次的效果。
对于ui设计界面来说,将右下角的autoReapeat勾选,下面的间隔时间autoReapeatDealy可以修改,单位是ms,默认是300ms,例如长按2秒钟按2000/300=6.6,按7次计算。
3.按钮的自定义图形设置
3.1 资源文件的添加
新建项目后->右键项目选择add new(步骤1)->模板Qt–Qt Resource File(步骤2)
3.2 更改样式表
完成了资源文件的添加,即可使用添加样式表来进行自定义pushbutton、label等的图片了。
4.按钮不同状态的切换,使用标志位
按钮点击过后响应槽函数,在槽函数里面好像是不可以使用if判断语句的,所以使用switch-case语句来实现多种状态的切换。在全局定义一个标志位,
(A)只有两种状态的情况:
注:num在声明时我定义为1,可以根据个人设置。
switch(num)
{
case 1: ui->label->setNum(num);num--;ui->pushButton->setText("≧◇≦"); break;
case 0: ui->label->setNum(num);num++;ui->pushButton->setText("^_^");break;
}
效果如下图所示,点击按钮,label中的数字进行0-1,1-0的切换,按钮的图标也随之变换。
(B)多种状态的情况:
switch(num)
{case 1: ui->label->setNum(num);num++;ui->pushButton->setText("≧◇≦"); break;
case 2: ui->label->setNum(num);num++;ui->pushButton->setText("^_^");break;
case 3: ui->label->setNum(num);num++;ui->pushButton->setText("╮( ̄▽  ̄)╭");break;
case 4: ui->label->setNum(num);num=num-4;ui->pushButton->setText("(=^_^=)");break;
case 0: ui->label->setNum(num);num++;ui->pushButton->setText(" (︶︿︶)");break;
}
}
效果如下图所示,每次点击按钮,label中的数字进行0-1-2-3-4-0-1,1-0的切换一次状态,按钮的图标也随之变换。
5.按钮简单布局整理
选中9个按钮,进行栅格布局,会变的很小很密集,如下图
有的时候这不是我们想要的结果,那就需要按钮设置
再次进行布局,如下图所示: