📄 mainwindow.cpp
字号:
#include <QtGui>
#include "mainwindow.h"
MainWindow::MainWindow(QWidget * parent):QWidget(parent){
/*
let_Dec
let_Hex
let_Oct
let_Bin
*/
let_Dec=new QLineEdit();
let_Dec->setAlignment(Qt::AlignRight);
let_Hex=new QLineEdit();
let_Hex->setAlignment(Qt::AlignRight);
let_Oct=new QLineEdit();
let_Oct->setAlignment(Qt::AlignRight);
let_Bin=new QLineEdit();
let_Bin->setAlignment(Qt::AlignRight);
let_Dec->installEventFilter(this);
let_Hex->installEventFilter(this);
let_Oct->installEventFilter(this);
let_Bin->installEventFilter(this);
lbl_Dec=new QLabel(tr("&Dec"));
lbl_Hex=new QLabel(tr("&Hex"));
lbl_Oct=new QLabel(tr("&Oct"));
lbl_Bin=new QLabel(tr("&Bin"));
lbl_Dec->setBuddy(let_Dec);
lbl_Hex->setBuddy(let_Hex);
lbl_Oct->setBuddy(let_Hex);
lbl_Bin->setBuddy(let_Bin);
val_Dec=new QRegExpValidator(*(new QRegExp("\\d{0,7}")),this);
val_Hex=new QRegExpValidator(*(new QRegExp("[A-F0-9]{0,4}",Qt::CaseInsensitive)),this);
val_Oct=new QRegExpValidator(*(new QRegExp("[0-7]{0,6}")),this);
val_Bin=new QRegExpValidator(*(new QRegExp("[01]{0,16}")),this);
let_Dec->setValidator(val_Dec);
let_Hex->setValidator(val_Hex);
let_Oct->setValidator(val_Oct);
let_Bin->setValidator(val_Bin);
btn_exit=new QPushButton(tr("E&xit"));
connect(btn_exit,SIGNAL(clicked()),qApp,SLOT(quit()));
btn_count=new QPushButton(tr("&Count"));
connect(btn_count,SIGNAL(clicked()),this,SLOT(count()));
layout_top =new QHBoxLayout;
layout_middle=new QHBoxLayout;
layout_down=new QHBoxLayout;
layout =new QVBoxLayout;
layout_top->addWidget(lbl_Dec);
layout_top->addWidget(let_Dec);
layout_top->addWidget(lbl_Hex);
layout_top->addWidget(let_Hex);
layout_middle->addWidget(lbl_Oct);
layout_middle->addWidget(let_Oct);
layout_middle->addWidget(lbl_Bin);
layout_middle->addWidget(let_Bin);
layout_down->addWidget(btn_count);
layout_down->addWidget(btn_exit);
layout->addLayout(layout_top);
layout->addLayout(layout_middle);
layout->addLayout(layout_down);
setLayout(layout);
setWindowTitle("Changer");
}
void MainWindow::count(QLineEdit * starter){
bool b;
QString str;
int tmp;
if(starter==let_Dec){
tmp=starter->text().toInt(&b,10);
str.setNum(tmp,16);
let_Hex->setText(str.toUpper());
str.setNum(tmp,8);
let_Oct->setText(str);
str.setNum(tmp,2);
let_Bin->setText(str);
}
else
if(starter==let_Hex){
tmp=starter->text().toInt(&b,16);
str.setNum(tmp);
let_Dec->setText(str);
str.setNum(tmp,8);
let_Oct->setText(str);
str.setNum(tmp,16);
let_Hex->setText(str.toUpper());
str.setNum(tmp,2);
let_Bin->setText(str);
}
else
if(starter==let_Oct){
tmp=starter->text().toInt(&b,8);
str.setNum(tmp);
let_Dec->setText(str);
str.setNum(tmp,16);
let_Hex->setText(str.toUpper());
str.setNum(tmp,2);
let_Bin->setText(str);
}
else
if(starter==let_Bin){
tmp=starter->text().toInt(&b,2);
str.setNum(tmp);
let_Dec->setText(str);
str.setNum(tmp,16);
let_Hex->setText(str.toUpper());
str.setNum(tmp,8);
let_Oct->setText(str);
}
else{
return;
}
}
bool MainWindow::eventFilter(QObject * watched, QEvent * event){
if(watched==let_Dec || watched==let_Hex || watched== let_Oct || watched==let_Bin)
{
if(event->type() == QEvent::KeyRelease){
count(static_cast<QLineEdit *>(watched));
return true;
}
}
return QWidget::eventFilter(watched,event);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -