我正在尝试使用Qt Embedded实现输入法。如何在不改变当前焦点的情况下点击离焦小部件中的按钮
有一个查找表,用于选择用于打字的候选词。 “文本输入区域”到“查找表格”和所选单词不能发送到“文本输入区域”。
剂量任何人有任何想法来解决这个问题?谢谢〜
这里我举一个简单的例子:
的main.cpp
#include "InputWidget.h"
#include "ButtonWidget.h"
#include <QApplication>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
InputWidget *inputWidget=new InputWidget();
ButtonWidget *buttonWidget=new ButtonWidget();
inputWidget->show();
buttonWidget->show();
int ref=app.exec();
inputWidget->deleteLater();
buttonWidget->deleteLater();
return ref;
}
InputWidget.h
#include <QWidget>
#include <QPlainTextEdit>
#ifndef _InputWidget_H_
#define _InputWidget_H_
class InputWidget:public QWidget
{
Q_OBJECT
public:
InputWidget(QWidget *parent=0);
private:
QPlainTextEdit *inputArea;
};
#endif
InputWidget.cpp
#include "InputWidget.h"
#include <QPushButton>
#include <QVBoxLayout>
InputWidget::InputWidget(QWidget *parent):QWidget(parent)
{
//input area setup
inputArea=new QPlainTextEdit(this);
//main layout
QVBoxLayout *mainLayout=new QVBoxLayout(this);
mainLayout->setContentsMargins(1,4,1,1);
mainLayout->addWidget(inputArea);
setLayout(mainLayout);
}
ButtonWidget.h
#include <QWidget>
#include <QPushButton>
#ifndef _ButtonWidget_H_
#define _ButtonWidget_H_
class ButtonWidget:public QWidget
{
Q_OBJECT
public:
ButtonWidget(QWidget *parent=0);
private:
QPushButton *selectedBtn;
public slots:
void changeBtnText();
};
#endif
ButtonWidget.cpp
#include "ButtonWidget.h"
#include <QPushButton>
#include <QVBoxLayout>
ButtonWidget::ButtonWidget(QWidget *parent):QWidget(parent)
{
//selectedBtn setup
selectedBtn=new QPushButton(tr("Click Me!!"),this);
connect(selectedBtn,SIGNAL(clicked()),this,SLOT(changeBtnText()));
//main layout
QVBoxLayout *mainLayout=new QVBoxLayout(this);
mainLayout->setContentsMargins(1,4,1,1);
mainLayout->addWidget(selectedBtn);
setLayout(mainLayout);
}
void
ButtonWidget::changeBtnText()
{
selectedBtn->setText("I am clicked :)");
}
这些码将产生具有PlainTextEdit “inputArea” 并具有一个按钮 “selectedBtn” 的微件的微件。
首先,我在“inputArea”中输入了一些单词。当前foucs位于InputWidget中的“inputArea”上。
但是,当我将鼠标移动到ButtonWidget并单击“selectedBtn”时,ButtonWidget中的foucs更改为“selectedBtn”。
如何点击“selectedBtn”,但仍然保留“inputArea”?谢谢〜
就像在劳拉的回答说明我的意见,InputWidget和ButtonWidget可能没有相同的父母和我不能使用了QWidget的“的setFocus”插槽改变他们之间目前的工作重点。
你可能想多解释一下,很难理解你想要做什么以及出了什么问题。一些代码片段也可能帮助人们帮助你。只需点击“编辑”并稍微更新你的问题。 – balpha 2010-01-06 07:37:06