我必须为触摸屏软件制作一个GUI,它与文本编辑处于同一窗口,我正在考虑使用一组有限的字符进行简单的操作,(我以后也必须为其他窗口制作PIN码垫)我想到的方法是对每个按钮完成的文本修改进行硬编码,我正在面对的问题是获取实际上具有焦点的文本编辑(由用户光标)Qt在屏幕键盘上,如何获得选定的文本编辑
所以我想知道如何找出某个TextEdit当前是否有焦点?
此外,如果有更好的方法来做到这一点?
编辑: 这是我的新代码,它有什么问题?
#include "settings2.h"
#include "ui_settings2.h"
Settings2::Settings2(QWidget *parent) :
QWidget(parent),
ui(new Ui::Settings2)
{
ui->setupUi(this);
}
Settings2::~Settings2()
{
delete ui;
}
void Settings2::on_q_btn_clicked()
{
QTextEdit *textedit = qobject_cast<QTextEdit*>(QApplication::focusWidget());
if(textedit){
textedit->setText("aze");}
}
您可以通过['QApplication :: focusWidget'](http://qt-project.org/doc/qt-5/qapplication.html#focusWidget)找出哪个部件具有焦点。 – thuga 2014-10-28 09:51:54
*“有什么问题”*没有足够的信息要知道。 'on_q_btn_clicked()'被调用了吗?你可以设置一个断点或弹出一个[QMessageBox](http://qt-project.org/doc/qt-5/qmessagebox.html)来找出? – HostileFork 2014-10-28 10:15:35
另请注意,单击按钮可能会改变焦点,[请参阅此问题](http://stackoverflow.com/questions/2011423/)以了解关于焦点策略的问题。您可能会检查是否发生了点击事件。 – HostileFork 2014-10-28 10:21:44