如:
public slots:
void do_cursorChanged();把所有不想聚焦的控件,都设置上setFocusPolicy(Qt::NoFocus);
另外,软键盘的制作,最好不用做画面的方式来做,或多或少都会有些问题的。最好的方式是用Qt做输入法程序,Qt源代码里面好象有个输入法例子。按照我的理解,假设有一个编辑控件,一个button,你点击button后,会在编辑控件中显示字符,如果是的话,那就如下
先假设你点击button会输出12345
class ourbutton : public QPushButton
{
Q_OBJECT
public:
ourbutton(QWidget parent = 0) : QPushButton(parent)
{
connect(this, SIGNAL(clicked()),
this, SLOT(getText()));
}
signals:
void sendText(const QString &text);
private slots:
void getText() { emit sendText(tr("12345")) }
};
QLineEdit edit = new QLineEdit();
ourbutton button = new ourbutton();
connect(button, SIGNAL(sendText(const QString &text)),
);下面只是给出一段演示代码,你需要根据实际情况进行修改
QTextEdit editer;
editersetText("abcdef");
//获取当前文本光标
QTextCursor cursor = editertextCursor();
//将光标移动到文本结尾,便于删除字符测试,实际上并不需要该步骤
cursormovePosition(QTextCursor::End);
//判断当前是否选中了文本,如果选中了文本则取消选中的文本,再删除前一个字符
if(cursorhasSelection())
cursorclearSelection();
//删除前一个字符
cursordeletePreviousChar();
//设置当前的光标为更改后的光标
editersetTextCursor(cursor);
editershow();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)