To-Do app: Beta version

This commit is contained in:
Nicolas Mailloux 2022-09-15 01:04:52 -04:00
parent afa7220f92
commit 377cbe31f1
9 changed files with 538 additions and 266 deletions

View file

@ -20,17 +20,31 @@ todo::todo(QWidget *parent) :
ui->newBtn->setProperty("type", "borderless");
ui->deleteBtn->setProperty("type", "borderless");
ui->setupBtn->setProperty("type", "borderless");
ui->newItemBtn->setProperty("type", "borderless");
ui->deleteItemBtn->setProperty("type", "borderless");
ui->selectAllItemsBtn->setProperty("type", "borderless");
ui->selectItemsModeBtn->setProperty("type", "borderless");
ui->deleteBtn->setStyleSheet("padding: 10px");
ui->setupBtn->setStyleSheet("padding: 10px");
ui->newItemBtn->setStyleSheet("padding: 10px");
ui->deleteItemBtn->setStyleSheet("padding: 10px");
ui->selectAllItemsBtn->setStyleSheet("padding: 10px");
ui->selectItemsModeBtn->setStyleSheet("padding: 10px");
ui->closeBtn->setIcon(QIcon(":/resources/close.png"));
ui->newBtn->setIcon(QIcon(":/resources/new.png"));
ui->newItemBtn->setIcon(QIcon(":/resources/plus.png"));
ui->deleteBtn->setIcon(QIcon(":/resources/x-circle.png"));
ui->setupBtn->setIcon(QIcon(":/resources/arrow-right.png"));
ui->deleteItemBtn->setIcon(QIcon(":/resources/x-circle.png"));
ui->selectAllItemsBtn->setIcon(QIcon(":/resources/checkbox-checked-small.png"));
ui->selectItemsModeBtn->setIcon(QIcon(":/resources/checkbox-unchecked-small.png"));
ui->listWidget->setStyleSheet("font-size: 10pt");
ui->listWidget->setWordWrap(true);
ui->itemsListWidget->setStyleSheet("font-size: 10pt");
ui->itemsListWidget->setWordWrap(true);
ui->editToolbarWidget->hide();
refreshList();
}
@ -46,28 +60,18 @@ void todo::on_closeBtn_clicked()
}
else {
saveCurrentList();
ui->stackedWidget->setCurrentIndex(0);
ui->closeBtn->setIcon(QIcon(":/resources/close.png"));
ui->deleteBtn->setEnabled(true);
ui->setupBtn->setEnabled(true);
currentView = currentView::home;
switchViewHome();
}
}
void todo::on_newBtn_clicked()
{
global::keyboard::embed = false;
virtualkeyboard * virtualKeyboardWidget = new virtualkeyboard(this);
virtualKeyboardWidget->setAttribute(Qt::WA_DeleteOnClose);
if(currentView == currentView::home) {
QObject::connect(virtualKeyboardWidget, &virtualkeyboard::enterBtnPressed, this, &todo::createNewList);
QObject::connect(virtualKeyboardWidget, &virtualkeyboard::closeBtnPressed, this, &todo::setDefaultHomePageStatusText);
ui->statusLabel->setText("Enter the list's name");
}
else {
QObject::connect(virtualKeyboardWidget, &virtualkeyboard::enterBtnPressed, this, &todo::addItem);
ui->statusLabel->setText("Enter the item's name");
}
virtualKeyboardWidget->show();
}
@ -167,7 +171,10 @@ void todo::setupList(QString listName) {
}
ui->itemsListWidget->addItem(item);
}
ui->closeBtn->setIcon(QIcon(":/resources/check.png"));
// I know it's confusing; think about it twice, or better, have a device at hand to see how this behaves in reality
ui->closeBtn->setIcon(QIcon(":/resources/arrow-left.png"));
ui->line_2->hide();
ui->newBtn->hide();
ui->statusLabel->setText("Select or create a new item");
}
@ -211,5 +218,113 @@ void todo::saveCurrentList() {
void todo::on_deleteBtn_clicked()
{
QJsonDocument document = readTodoDatabase();
QJsonObject object = document.object();
QJsonArray mainArray = object["List"].toArray();
for(int i = 0; i < mainArray.count(); i++) {
if(mainArray.at(i).toArray().at(0).toString() == ui->listWidget->currentItem()->text()) {
mainArray.removeAt(i);
}
}
object["List"] = mainArray;
document.setObject(object);
writeTodoDatabase(document);
refreshList();
}
void todo::on_newItemBtn_clicked()
{
global::keyboard::embed = false;
virtualkeyboard * virtualKeyboardWidget = new virtualkeyboard(this);
virtualKeyboardWidget->setAttribute(Qt::WA_DeleteOnClose);
QObject::connect(virtualKeyboardWidget, &virtualkeyboard::enterBtnPressed, this, &todo::addItem);
QObject::connect(virtualKeyboardWidget, &virtualkeyboard::closeBtnPressed, this, &todo::setDefaultListPageStatusText);
ui->statusLabel->setText("Enter the item's name");
virtualKeyboardWidget->show();
}
void todo::switchViewHome() {
ui->itemsListWidget->clear();
switchItemsSelectionMode(false);
ui->stackedWidget->setCurrentIndex(0);
ui->closeBtn->setIcon(QIcon(":/resources/close.png"));
ui->line_2->show();
ui->newBtn->show();
ui->deleteBtn->setEnabled(true);
ui->setupBtn->setEnabled(true);
setDefaultHomePageStatusText();
currentView = currentView::home;
}
void todo::on_selectItemsModeBtn_clicked()
{
if(selectItemsMode == false) {
switchItemsSelectionMode(true);
}
else {
switchItemsSelectionMode(false);
}
}
void todo::switchItemsSelectionMode(bool selectionMode) {
if(selectionMode == true) {
log("Entering selection mode", className);
saveCurrentList();
ui->newItemBtn->setEnabled(false);
ui->selectItemsModeBtn->setStyleSheet("padding: 10px; background-color: lightGray;");
ui->editToolbarWidget->show();
ui->statusLabel->setText("Selection mode");
selectItemsMode = true;
}
else {
log("Exiting selection mode", className);
setupList(readTodoDatabase().object()["List"].toArray().at(listIndex).toArray().at(0).toString());
ui->selectItemsModeBtn->setStyleSheet("padding: 10px; background-color: white;");
ui->editToolbarWidget->hide();
ui->newItemBtn->setEnabled(true);
ui->statusLabel->setText("Select or create a new item");
selectItemsMode = false;
}
QTimer::singleShot(500, this, SLOT(repaint()));
}
void todo::on_deleteItemBtn_clicked()
{
log("Deleting list item(s)", className);
QJsonDocument document = readTodoDatabase();
QJsonObject object = document.object();
QJsonArray mainArray = object["List"].toArray();
QJsonArray listArray = mainArray.at(listIndex).toArray();
int itemsRemoved = 0;
for(int i = 1; i < ui->itemsListWidget->count() + 1; i++) {
if(ui->itemsListWidget->item(i - 1)->checkState() == Qt::Checked) {
listArray.removeAt(i - itemsRemoved);
itemsRemoved++;
}
}
// Adding item array to list array
mainArray.replace(listIndex, listArray);
object["List"] = mainArray;
document.setObject(object);
writeTodoDatabase(document);
setupList(listArray.at(0).toString());
}
void todo::on_selectAllItemsBtn_clicked()
{
int range = ui->itemsListWidget->count();
for(int i = 0; i < range; i++) {
ui->itemsListWidget->item(i)->setCheckState(Qt::Checked);
}
}
void todo::setDefaultHomePageStatusText() {
ui->statusLabel->setText("Select or create a new list");
}
void todo::setDefaultListPageStatusText() {
ui->statusLabel->setText("Select or create a new item");
}

View file

@ -22,6 +22,7 @@ public:
home,
list
};
bool selectItemsMode = false;
currentView currentView = currentView::home;
int listIndex;
@ -33,9 +34,17 @@ private slots:
void refreshList();
void saveCurrentList();
void setupList(QString listName);
void switchViewHome();
void switchItemsSelectionMode(bool selectionMode);
void setDefaultHomePageStatusText();
void setDefaultListPageStatusText();
void on_setupBtn_clicked();
void on_listWidget_itemClicked(QListWidgetItem *item);
void on_deleteBtn_clicked();
void on_newItemBtn_clicked();
void on_selectItemsModeBtn_clicked();
void on_deleteItemBtn_clicked();
void on_selectAllItemsBtn_clicked();
private:
Ui::todo *ui;

View file

@ -18,6 +18,26 @@
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="5">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="closeBtn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLabel" name="statusLabel">
<property name="font">
@ -30,24 +50,13 @@
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QLabel" name="todoLabel">
<property name="font">
<font>
<family>Inter</family>
<weight>75</weight>
<bold>true</bold>
</font>
<item row="0" column="1">
<widget class="Line" name="line_2">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string>To-Do</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="closeBtn">
<property name="text">
<string/>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
@ -64,19 +73,6 @@
</property>
</spacer>
</item>
<item row="0" column="5">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="newBtn">
<property name="text">
@ -84,13 +80,17 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="Line" name="line_2">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
<item row="0" column="6">
<widget class="QLabel" name="todoLabel">
<property name="font">
<font>
<family>Inter</family>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
<property name="text">
<string>To-Do</string>
</property>
</widget>
</item>
@ -200,6 +200,150 @@
</property>
<item>
<layout class="QVBoxLayout" name="listVerticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="topMargin">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="newItemBtn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_5">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="selectItemsModeBtn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="editToolbarWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="Line" name="line_7">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="deleteItemBtn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_6">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="selectAllItemsBtn">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2"/>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_8">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>4</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="itemsListWidget"/>
</item>

View file

@ -99,5 +99,7 @@
<file>resources/wifi-100.png</file>
<file>resources/log.png</file>
<file>resources/new.png</file>
<file>resources/checkbox-unchecked-small.png</file>
<file>resources/checkbox-checked-small.png</file>
</qresource>
</RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -130,7 +130,7 @@ virtualkeyboard::virtualkeyboard(QWidget *parent) :
ui->eraseBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 27px");
ui->shiftBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 27px");
ui->spt->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 27px");
ui->sat->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 27px");
ui->sat->setStyleSheet("font-weight: bold; font-size: 7pt; padding: 27px");
ui->spaceBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 15px; border: 1px solid black");
}
else if(global::deviceID == "n437\n") {
@ -175,7 +175,7 @@ virtualkeyboard::virtualkeyboard(QWidget *parent) :
ui->eraseBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 20px");
ui->shiftBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 20px");
ui->spt->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 20px");
ui->sat->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 20px");
ui->sat->setStyleSheet("font-weight: bold; font-size: 7pt; padding: 20px");
ui->spaceBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 15px; border: 1px solid black");
}
else {
@ -220,7 +220,7 @@ virtualkeyboard::virtualkeyboard(QWidget *parent) :
ui->eraseBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 13px");
ui->shiftBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 13px");
ui->spt->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 13px");
ui->sat->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 13px");
ui->sat->setStyleSheet("font-weight: bold; font-size: 7pt; padding: 13px");
ui->spaceBtn->setStyleSheet("font-weight: bold; font-size: 9pt; padding: 10px; border: 1px solid black");
}
@ -446,7 +446,7 @@ void virtualkeyboard::on_la_clicked()
void virtualkeyboard::on_ls_clicked()
{
ui->lineEdit->insert(QString(ui->la->text().back()));
ui->lineEdit->insert(ui->ls->text());
QString text = ui->lineEdit->text();
global::keyboard::keyboardText = text;
@ -734,5 +734,6 @@ void virtualkeyboard::on_enterBtn_clicked()
void virtualkeyboard::on_closeBtn_clicked()
{
global::keyboard::keyboardText = "";
emit closeBtnPressed();
this->close();
}

View file

@ -81,6 +81,7 @@ private:
signals:
void adjust_size();
void enterBtnPressed(QString string);
void closeBtnPressed();
};
#endif // VIRTUALKEYBOARD_H

View file

@ -115,17 +115,10 @@
<layout class="QGridLayout" name="gridLayout_3">
<item row="13" column="3">
<layout class="QGridLayout" name="gridLayout_4">
<item row="7" column="12">
<widget class="QPushButton" name="eraseBtn">
<item row="2" column="7">
<widget class="QPushButton" name="ly">
<property name="text">
<string>⌫</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="n3">
<property name="text">
<string>3</string>
<string>y</string>
</property>
</widget>
</item>
@ -136,13 +129,6 @@
</property>
</widget>
</item>
<item row="6" column="4">
<widget class="QPushButton" name="ld">
<property name="text">
<string>d</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="lq">
<property name="text">
@ -150,181 +136,6 @@
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="n2">
<property name="text">
<string>2</string>
</property>
</widget>
</item>
<item row="6" column="7">
<widget class="QPushButton" name="lg">
<property name="text">
<string>g</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QPushButton" name="lz">
<property name="text">
<string>z</string>
</property>
</widget>
</item>
<item row="0" column="10">
<widget class="QPushButton" name="n9">
<property name="text">
<string>9</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="n4">
<property name="text">
<string>4</string>
</property>
</widget>
</item>
<item row="7" column="3">
<widget class="QPushButton" name="lx">
<property name="text">
<string>x</string>
</property>
</widget>
</item>
<item row="0" column="9">
<widget class="QPushButton" name="n8">
<property name="text">
<string>8</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="lw">
<property name="text">
<string>w</string>
</property>
</widget>
</item>
<item row="6" column="12">
<widget class="QPushButton" name="ll">
<property name="text">
<string>l</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="le">
<property name="text">
<string>e</string>
</property>
</widget>
</item>
<item row="7" column="7">
<widget class="QPushButton" name="lb">
<property name="text">
<string>b</string>
</property>
</widget>
</item>
<item row="6" column="9">
<widget class="QPushButton" name="lj">
<property name="text">
<string>j</string>
</property>
</widget>
</item>
<item row="7" column="4">
<widget class="QPushButton" name="lc">
<property name="text">
<string>c</string>
</property>
</widget>
</item>
<item row="2" column="8">
<widget class="QPushButton" name="lu">
<property name="text">
<string>u</string>
</property>
</widget>
</item>
<item row="6" column="8">
<widget class="QPushButton" name="lh">
<property name="text">
<string>h</string>
</property>
</widget>
</item>
<item row="0" column="8">
<widget class="QPushButton" name="n7">
<property name="text">
<string>7</string>
</property>
</widget>
</item>
<item row="6" column="10">
<widget class="QPushButton" name="lk">
<property name="text">
<string>k</string>
</property>
</widget>
</item>
<item row="0" column="12">
<widget class="QPushButton" name="n0">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item row="2" column="10">
<widget class="QPushButton" name="lo">
<property name="text">
<string>o</string>
</property>
</widget>
</item>
<item row="6" column="6">
<widget class="QPushButton" name="lf">
<property name="text">
<string>f</string>
</property>
</widget>
</item>
<item row="2" column="9">
<widget class="QPushButton" name="li">
<property name="text">
<string>i</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QPushButton" name="shiftBtn">
<property name="text">
<string>⇧</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QPushButton" name="ls">
<property name="text">
<string>s</string>
</property>
</widget>
</item>
<item row="7" column="10">
<widget class="QPushButton" name="spt">
<property name="text">
<string>.</string>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QPushButton" name="lt">
<property name="text">
<string>t</string>
</property>
</widget>
</item>
<item row="7" column="8">
<widget class="QPushButton" name="ln">
<property name="text">
@ -332,17 +143,52 @@
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="sat">
<item row="0" column="10">
<widget class="QPushButton" name="n9">
<property name="text">
<string>#</string>
<string>9</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QPushButton" name="la">
<item row="7" column="4">
<widget class="QPushButton" name="lc">
<property name="text">
<string>a</string>
<string>c</string>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QPushButton" name="lr">
<property name="text">
<string>r</string>
</property>
</widget>
</item>
<item row="0" column="8">
<widget class="QPushButton" name="n7">
<property name="text">
<string>7</string>
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QPushButton" name="n5">
<property name="text">
<string>5</string>
</property>
</widget>
</item>
<item row="0" column="9">
<widget class="QPushButton" name="n8">
<property name="text">
<string>8</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="n3">
<property name="text">
<string>3</string>
</property>
</widget>
</item>
@ -353,6 +199,76 @@
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QPushButton" name="lt">
<property name="text">
<string>t</string>
</property>
</widget>
</item>
<item row="2" column="9">
<widget class="QPushButton" name="li">
<property name="text">
<string>i</string>
</property>
</widget>
</item>
<item row="0" column="12">
<widget class="QPushButton" name="n0">
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item row="7" column="7">
<widget class="QPushButton" name="lb">
<property name="text">
<string>b</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="n4">
<property name="text">
<string>4</string>
</property>
</widget>
</item>
<item row="2" column="10">
<widget class="QPushButton" name="lo">
<property name="text">
<string>o</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QPushButton" name="shiftBtn">
<property name="text">
<string>⇧</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QPushButton" name="lz">
<property name="text">
<string>z</string>
</property>
</widget>
</item>
<item row="7" column="12">
<widget class="QPushButton" name="eraseBtn">
<property name="text">
<string>⌫</string>
</property>
</widget>
</item>
<item row="0" column="7">
<widget class="QPushButton" name="n6">
<property name="text">
<string>6</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="n1">
<property name="text">
@ -367,31 +283,115 @@
</property>
</widget>
</item>
<item row="0" column="7">
<widget class="QPushButton" name="n6">
<item row="7" column="10">
<widget class="QPushButton" name="spt">
<property name="text">
<string>6</string>
<string>.</string>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QPushButton" name="ly">
<item row="7" column="3">
<widget class="QPushButton" name="lx">
<property name="text">
<string>y</string>
<string>x</string>
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QPushButton" name="n5">
<item row="0" column="2">
<widget class="QPushButton" name="n2">
<property name="text">
<string>5</string>
<string>2</string>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QPushButton" name="lr">
<item row="2" column="2">
<widget class="QPushButton" name="lw">
<property name="text">
<string>r</string>
<string>w</string>
</property>
</widget>
</item>
<item row="2" column="8">
<widget class="QPushButton" name="lu">
<property name="text">
<string>u</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="le">
<property name="text">
<string>e</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="la">
<property name="text">
<string>a</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QPushButton" name="ls">
<property name="text">
<string>s</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QPushButton" name="ld">
<property name="text">
<string>d</string>
</property>
</widget>
</item>
<item row="6" column="4">
<widget class="QPushButton" name="lf">
<property name="text">
<string>f</string>
</property>
</widget>
</item>
<item row="6" column="6">
<widget class="QPushButton" name="lg">
<property name="text">
<string>g</string>
</property>
</widget>
</item>
<item row="6" column="7">
<widget class="QPushButton" name="lh">
<property name="text">
<string>h</string>
</property>
</widget>
</item>
<item row="6" column="8">
<widget class="QPushButton" name="lj">
<property name="text">
<string>j</string>
</property>
</widget>
</item>
<item row="6" column="9">
<widget class="QPushButton" name="lk">
<property name="text">
<string>k</string>
</property>
</widget>
</item>
<item row="6" column="10">
<widget class="QPushButton" name="ll">
<property name="text">
<string>l</string>
</property>
</widget>
</item>
<item row="6" column="12">
<widget class="QPushButton" name="sat">
<property name="text">
<string>#?</string>
</property>
</widget>
</item>