⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.cpp

📁 利用python语言写的课程设计: 包括学生成绩统计
💻 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 + -