qt下的qwidget框口怎么设置才能不吃焦点

qt下的qwidget框口怎么设置才能不吃焦点,第1张

1、用户按下Tab键(或者Shift键+Tab键)(或者有时是Enter键)。

2、用户点击一个窗口部件。

3、用户按下一个键盘快捷键。

4、用户使用鼠标滚轮。

5、用户移动焦点到一个窗口,并且应用程序必须决定窗口中的哪个窗口部件应该得到焦点。

把所有不想聚焦的控件,都设置上setFocusPolicy(Qt::NoFocus)

另外,软键盘的制作,最好不用做画面的方式来做,或多或少都会有些问题的。最好的方式是用Qt做输入法程序,Qt源代码里面好象有个输入法例子。

两个lineEdit,判断焦点,按键无焦点,在设置linEdit有焦点setFocus才能有效;

参考实例如下:

#include "widget.h"#include "ui_widget.h"

#include <QButtonGroup>

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this)

QButtonGroup *m_buGroup = new QButtonGroup(this)//按钮

ui->pushButton0->setFocusPolicy(Qt::NoFocus)//设置按钮无焦点

ui->pushButton0->setIconSize(QSize(55, 50))

m_buGroup->addButton(ui->pushButton0,1)//添加按钮到QButtonGroup

ui->lineEdit->setFocus()//设置焦点

QObject::connect(m_buGroup, SIGNAL(buttonClicked(int)),this, SLOT(buttonNumslot(int)))

}

void Widget::buttonNumslot(int bn)

{

if(ui->lineEdit->hasFocus())//输入框1焦点

{

ui->lineEdit->insert(QString::number(bn))

}

else if(ui->lineEdit_2->hasFocus())//输入框2焦点

{

ui->lineEdit_2->insert(QString::number(bn))

}

设置按钮无焦点,lineEdit才可以判断焦点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7843767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存