我必須爲觸摸屏軟件製作一個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