Qt文档译:QPushButton

0.详细介绍

QPushButton类提供了一个命令的按钮.它可以说是图形界面中最常用的控件之一了.点击按钮来执行一些计算机的命令,或者回答一些问题.常用的按钮有:OK, Apply, Cancel, Close, Yes, No and Help等.按钮通常是矩形的,在按钮上通过文本来显示描述它的动作作用.可以在按钮的文本中使用’&’来给该按钮设置快捷键.比如:

//快捷键为alt+d.
QPushButton *button = new QPushButton("&Download", this);

按钮上可以显示一个文本标签,也可以设置一个图标.这些可以通过构造函数来设置,也可以随时调用setText()和setIcon()进行设置.

如果按钮是禁用的,也就是未被激活的,则文本和图标的外观默认呈现的是灰色的,看起来就好像是禁用的.

当鼠标点击按钮,快捷键按下按钮时,按钮会发出clicked()信号.我们需要让执行的动作与这个信号连接起来.按钮类也提供了pressed()和released()等较少使用的方法,常用的是clicked()方法,当手动调用后相当于发出信号被的操作.也就是emit操作.

常用的模式情况:

Available or not (grayed out, disabled).//禁用的.
Standard push button, toggling push button or menu button.标准按钮,按下和菜单按钮.
On or off (only for toggling push buttons).//切换开关.
Default or normal. The default button in a dialog can generally be "clicked" using the Enter or Return key.//正常还是默认.默认情况则可以直接被空格或Enter回车键触发.
Auto-repeat or not.//是否可以重复触发.
Pressed down or not.//是否按下.

通常来说,如果是正方形的按钮,且是为了修改一些状态(如QFileDialog右上角的按钮等)使用的都是QToolButton工具按钮.Qt为按钮类提供了一个特殊的QToolButton按钮类.

如果你想要按钮能够支持按下和弹起操作,可以使用setCheckable()方法来进行设置.或者希望通过鼠标一直按下,重复激活信号,可以调用setAutoRepeat()方法.但是QPushButton可能不是最好的选择,最好还是使用QToolButton类.

菜单按钮也是QPushButton按钮的一个变体.它不单单只提供了一种命令动作,而是好多个,当它被点击的时候会弹出一个菜单,我们可以通过调用setMenu()方法来设置弹出的菜单.

除此之外的按钮类常用选择控件还有QCheckButton和QRadioButton等.

1.常用方法介绍

  • 1.1
    :在QDialog中,autoDefault属性决定了按下Enter能否产生反应,而default属性决定了按下空格键能否产生反应.但有时设置了default的按钮也能相应Enter.而在QWidget和主窗体中不必纠结default和autoDefault属性.
    bool autoDefault() const
    void setAutoDefault(bool)
    bool isDefault() const
    void setDefault(bool)

  • 1.2
    该属性控制按钮是否不需要默认显示边框.默认是false的,表示一直显示边框…如果它被设置为true.则该按钮是不会显示四周的边框的,除非你按下它才显示.表象和QLabel类似,当你按下时才会显示边框~
    bool isFlat() const
    void setFlat(bool)

  • 1.3:
    作为菜单按钮来使用,当点击的时候显示菜单.一般来说,会在按钮名或者图标旁边出现一个小三角来表示这是一个菜单按钮.并且菜单的所有权没有转移到按钮上.
    QMenu * menu() const
    void QPushButton::setMenu(QMenu * menu)

    QPushButton *button = new QPushButton(this);
    button->move(100,100);
    button->setText("Language");
    button->adjustSize();
    //创建菜单.
    QMenu *menu = new QMenu();
    QAction *action1 = new QAction("C++",this);
    QAction *action2 = new QAction("Java", this);
    QAction *action3 = new QAction("Python", this);
    menu->addAction(action1);
    menu->addAction(action2);
    menu->addAction(action3);
    设置按钮为菜单按钮.
    button->setMenu(menu);

这里写图片描述
其他函数见QAbstractButton基类.

2.信号与槽

signals:

//按钮被点击发出信号.
void clicked(bool checked = false)
2.
//按钮被按下发出信号.
void pressed()
3.
//按钮被释放出信号.
void released()
4.
//按钮被按下或者释放都发出信号.
void toggled(bool checked)

slots:


  1. //显示菜单.如果没有设置菜单,就不显示呗.
    void showMenu()

  2. //执行按下按钮指定时间的操作.前提是设置了setAutoRepeat(true);
    void animateClick(int msec = 100)

  3. //执行点击按钮的操作.
    void click()

  4. //设置是否被选中.
    void setChecked(bool)

  5. //修改图标的尺寸.
    void setIconSize(const QSize & size)

  6. //执行切换操作.
    void toggle()
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值