Qt之setDefault切换焦点
时间: 2018-09-06来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>> Widget::Widget(QWidget *parent) : QWidget(parent) { button = new QPushButton("OK"); button->setDefault(true); //默认按钮:当按下enter键时,会默认选中[点击]button button->setParent(this); connect(button, SIGNAL(clicked()), this, SLOT(slotButtonClicked())); } void Widget::slotButtonClicked() { static int i = 0; //局部静态变量 qDebug() << "slotButtonClicked" << i++; }

一般情况下,焦点在主窗口上,但是如果我们需要处理子窗口,需要设置 #include "widget.h" #include <QPainter> #include <QDebug> #include <QVBoxLayout> Widget::Widget(QWidget *parent) : QWidget(parent) { QVBoxLayout *layout = new QVBoxLayout(this); QPushButton *button2, *button3; button = new QPushButton("OK"); layout->addWidget(button); layout->addWidget(button2 = new QPushButton("cancel")); layout->addWidget(button3 = new QPushButton("quit")); button->setDefault(true); //默认按钮:当按下enter键时,会默认选中[点击]button button2->setDefault(true); //根据上下箭头切换焦点[V],默认焦点为第一个设置的setDefault button3->setDefault(true); connect(button, SIGNAL(clicked()), this, SLOT(slotButtonClicked())); connect(button2, SIGNAL(clicked()), this, SLOT(slotButtonClicked())); connect(button3, SIGNAL(clicked()), this, SLOT(slotButtonClicked())); } void Widget::slotButtonClicked() { QPushButton *button = (QPushButton *)sender(); qDebug() << button->text(); }

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行