2019年12月21日10点25分: 有最新的。。 这个是刚学时候的demo 201811月写了一款公司用的 感觉很还可以,有空闲时间会再写一篇博客,这个算是练手的,适合新手理解流程? 注 QT版本 4.8.6
刚接触QT,老大让我做一个软键盘,前面根据QT自带的Example改写了一个,无奈是用UI设计师拖出来的界面不过关,于是痛定思痛,又做了一个,界面全靠手打的说,可以切换键盘与数字,不说了上图:
这是开始画面,点击就会弹出键盘
这是弹出的字母键盘,很丑我知道
这是切换的数字键盘 我知道丑。。
本人初学者哦。请轻喷。下面说代码
loain.h
#ifndef LOAIN_H
#define LOAIN_H
#include <QtCore/QVariant>
#include <QAction>
#include <QApplication>
#include <QButtonGroup>
#include <QHeaderView>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QWidget>
class loain: public QWidget
{
Q_OBJECT
public:
QLabel *label;
QLineEdit *lineEdit;
QPushButton *pushButton;
void setupUi(QWidget *import);
};
#endif // LOAIN_H
loain.app
#include "loain.h"
void loain::setupUi(QWidget *import)
{
import->setGeometry(300,300,300,100);
label = new QLabel(import);
label->setGeometry(10,10,100,20);
label->setText(tr("please input:"));
lineEdit = new QLineEdit(import);
lineEdit->setGeometry(100,10,100,20);
pushButton = new QPushButton(import);
pushButton->setText("close");
pushButton->setGeometry(200,60,60,30);
connect(pushButton,SIGNAL(clicked()),import,SLOT(close()));
}
这一段没有什么特别的,就是建立了一个开始的窗口,一个LineEdit输入文档。
keyboard.h
keyboard.app
#ifndef KEYBOARD_H
#define KEYBOARD_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QFormLayout>
#include <QStackedWidget>
#include <QObject>
#include <Qt>
#include <QButtonGroup>
#include <QMetaObject>
class keyboard: public QWidget
{
Q_OBJECT
public:
QStackedWidget *my_stackedWidget;
QWidget *window_alp;
QButtonGroup *buttonGroup_alp;
QPushButton *button_Q;
QPushButton *button_W;
QPushButton *button_E;
QPushButton *button_R;
QPushButton *button_T;
QPushButton *button_Y;
QPushButton *button_U;
QPushButton *button_I;
QPushButton *button_O;
QPushButton *button_P;
QPushButton *button_A;
QPushButton *button_S;
QPushButton *button_D;
QPushButton *button_F;
QPushButton *button_G;
QPushButton *button_H;
QPushButton *button_J;
QPushButton *button_K;
QPushButton *button_L;
QPushButton *button_Z;
QPushButton *button_X;
QPushButton *button_C;
QPushButton *button_V;
QPushButton *button_B;
QPushButton *button_N;
QPushButton *button_M;
QPushButton *button_blank;
QPushButton *button_delete;
QPushButton *button_nu;
QPushButton *button_close;
QWidget *window_nu;
QPushButton *button_1;
QPushButton *button_2;
QPushButton *button_3;
QPushButton *button_4;
QPushButton *button_5;
QPushButton *button_6;
QPushButton *button_7;
QPushButton *button_8;
QPushButton *button_9;
QPushButton *button_0;
QPushButton *button_letter;
QPushButton *button_blank_2;
QPushButton *button_delete_2;
QPushButton *button_close_2;
void setupUi(QWidget *keyboard_interface);
private slots:
void switchPage();
};
#endif // KEYBOARD_H
keyboard.app
#include "keyboard.h"
#include <QDebug>
void keyboard::setupUi(QWidget *keyboard_interface)
{
keyboard_interface->setGeometry(100,100,850,250);
my_stackedWidget = new QStackedWidget(keyboard_interface);//new一个stackedwidget,翻页用,因为要切换页面的嘛
window_alp = new QWidget(my_stackedWidget);//new一个界面,当字母键盘界面
button_Q = new QPushButton("Q",window_alp);
button_W = new QPushButton("W",window_alp);
button_E = new QPushButton("E",window_alp);
button_R = new QPushButton("R",window_alp);
button_T = new QPushButton("T",window_alp);
button_Y = new QPushButton("Y",window_alp);
button_U = new QPushButton("U",window_alp);
button_I = new QPushButton("I",window_alp);
button_O = new QPushButton("O",window_alp);
button_P = new QPushButton("P",window_alp);
button_A = new QPushButton("A",window_alp);
button_S = new QPushButton("S",window_alp);
button_D = new QPushButton("D",window_alp);
button_F = new QPushButton("F",window_alp);
button_G = new QPushButton("G",window_alp);
button_H = new QPushButton("H",window_alp);
button_J = new QPushButton("J",window_alp);
button_K = new QPushButton("K",window_alp);
button_L = new QPushButton("L",window_alp);
button_Z = new QPushButton("Z",window_alp);
button_X = new QPushButton("X",window_alp);
button_C = new QPushButton("C",window_alp);
button_V = new QPushButton("V",window_alp);