#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#pragma execution_character_set("utf-8")
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->grabKeyboard();
/*
获取 textedit 的文本内容:QString text = ui->textEdit->toPlainText();
设置textedit 的文本内容:ui->textEdit->append(“lkf”);此方法追加内容是换行追加
char b[10] = "sja";
ui->textEdit->moveCursor(QTextCursor::End);
ui->textEdit->insertPlainText(b);(在读写指针的位置处插入)
此方式追加是不换行追加(moveCursor 将读写指针移动到末尾)
if(event->key() == Qt::Key_CapsLock) {
QMessageBox::information(NULL, "CapsLock", "2",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
}
*/
}
MainWindow::~MainWindow()
{
delete ui;
}
//键盘按下事件
void MainWindow::keyPressEvent( QKeyEvent *k )
{
QString QKeyMenu="";
const char *keyA="a";
if(k->key() == Qt::Key_A)
{
QKeyMenu=k->key();
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
else if(k->key() == Qt::Key_B)
{
QKeyMenu=k->key();
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
else if(k->key() == Qt::Key_C)
{
QKeyMenu=k->key();
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
else if(k->key() == Qt::Key_Control) //ctrl键
{
QKeyMenu="ctrl键按下";
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
else if(k->key() == Qt::Key_Alt) //左侧alt键
{
QKeyMenu="左侧alt键按下";
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
else if(k->key() == Qt::Key_AltGr) //右侧alt键
{
QKeyMenu="右侧alt键按下";
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
//检测Ctri+CapsLock组合键 和 CapsLock大小写键
if ((k->modifiers() == Qt::ControlModifier) && (k->key() == Qt::Key_CapsLock))
{
QKeyMenu="组合键ctrl+CapsLock";
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
else if (k->key() == Qt::Key_CapsLock) //CapsLock 大小写
{
QKeyMenu="0";
QKeyMenu+=k->nativeModifiers() & Qt::Key_CapsLock;
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
//保持编辑器在光标最后一行
QTextCursor cursor=ui->textEdit->textCursor();
cursor.movePosition(QTextCursor::End);
ui->textEdit->setTextCursor(cursor);
}
//键盘弹起事件
void MainWindow::keyReleaseEvent( QKeyEvent * event)
{
QString QKeyMenu="";
const char *keyA="a";
if (event->key() == Qt::Key_CapsLock)
{
QKeyMenu="CapsLock键弹起";
ui->textEdit->insertPlainText(QKeyMenu +='\n');
}
//保持编辑器在光标最后一行
QTextCursor cursor=ui->textEdit->textCursor();
cursor.movePosition(QTextCursor::End);
ui->textEdit->setTextCursor(cursor);
}
void MainWindow::on_textEdit_copyAvailable(bool b)
{
}