#include "dialog.h"
#include "ui_dialog.h"
#include "passmodel.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
ui->setupUi(this);
QStringList headlist;
headlist<<tr("北直")<<tr("北左")<<tr("北右")<<tr("北行")<<tr("北非")<<tr("北调")<<tr("北扩1")<<tr("北扩2")
<<tr("东直")<<tr("东左")<<tr("东右")<<tr("东行")<<tr("东非")<<tr("东调")<<tr("东扩1")<<tr("东扩2")
<<tr("南直")<<tr("南左")<<tr("南右")<<tr("南行")<<tr("南非")<<tr("南调")<<tr("南扩1")<<tr("南扩2")
<<tr("西直")<<tr("西左")<<tr("西右")<<tr("西行")<<tr("西非")<<tr("西调")<<tr("西扩1")<<tr("西扩2");
ui->tableWidget->setHorizontalHeaderLabels(headlist);
ui->tableWidget->setVerticalHeaderLabels(headlist);
for(int i=0;i<8;i++)
{
for(int j=0;j<4;j++)
{
board_a[i][j]=0;
board_b[i][j]=0;
board_c[i][j]=0;
board_d[i][j]=0;
}
}
boardidx=0;
for(int i=0;i<8;i++)
{
for(int j=0;j<32;j++)
{
QTableWidgetItem *item=new QTableWidgetItem();
ui->tableWidget->setItem(i,j,item);
}
ui->tableWidget->setRowHeight(i,(ui->tableWidget->height()-ui->tableWidget->horizontalHeader()->height()-20)/8);
}
ui->tableWidget->resizeColumnsToContents();
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
on_button_a_clicked();
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::showdata(char data[8][4])
{
for(int row=0;row<8;row++)
{
for(int col=0;col<4;col++)
{
for(int bit=0;bit<8;bit++)
{
if(data[row][col]&(1<<bit))
{
ui->tableWidget->item(row,col*8+bit)->setCheckState(Qt::Checked);//有给tablewidget添加复选框的作用
}
else
{
ui->tableWidget->item(row,col*8+bit)->setCheckState(Qt::Unchecked);
}
}
}
}
}
void Dialog::showpassage()
{
QStringList headlist;
headlist.clear();
switch(boardidx)
{
case 0:
showdata(board_a);
headlist<<tr("通道1")<<tr("通道2")<<tr("通道3")<<tr("通道4")<<tr("通道5")<<tr("通道6")<<tr("通道7")<<tr("通道8");
ui->tableWidget->setVerticalHeaderLabels(headlist);
break;
case 1:
showdata(board_b);
headlist<<tr("通道9")<<tr("通道10")<<tr("通道11")<<tr("通道12")<<tr("通道13")<<tr("通道14")<<tr("通道15")<<tr("通道16");
ui->tableWidget->setVerticalHeaderLabels(headlist);
break;
case 2:
showdata(board_c);
headlist<<tr("通道17")<<tr("通道18")<<tr("通道19")<<tr("通道20")<<tr("通道21")<<tr("通道22")<<tr("通道23")<<tr("通道24");
ui->tableWidget->setVerticalHeaderLabels(headlist);
break;
case 3:
showdata(board_d);
headlist<<tr("通道25")<<tr("通道26")<<tr("通道27")<<tr("通道28")<<tr("通道29")<<tr("通道30")<<tr("通道31")<<tr("通道32");
ui->tableWidget->setVerticalHeaderLabels(headlist);
break;
default:
;
}
}
void Dialog::on_tableWidget_cellChanged(int row, int column)
{
if(ui->tableWidget->item(row,column)->checkState()==Qt::Checked)
{
switch(boardidx)
{
case 0:
board_a[row][column/8]=(board_a[row][column/8]|(1<<column%8));
break;
case 1:
board_b[row][column/8]=(board_b[row][column/8]|(1<<column%8));
break;
case 2:
board_c[row][column/8]=(board_c[row][column/8]|(1<<column%8));
break;
case 3:
board_d[row][column/8]=(board_d[row][column/8]|(1<<column%8));
break;
default:
;
}
}
else
{
switch(boardidx)
{
case 0:
board_a[row][column/8]=(board_a[row][column/8]&(~(1<<column%8)));
break;
case 1:
board_b[row][column/8]=(board_b[row][column/8]&(~(1<<column%8)));
break;
case 2:
board_c[row][column/8]=(board_c[row][column/8]&(~(1<<column%8)));
break;
case 3:
board_d[row][column/8]=(board_d[row][column/8]&(~(1<<column%8)));
break;
default:
;
}
}
}
void Dialog::on_button_a_clicked()
{
boardidx=0;
showpassage();
}
void Dialog::on_button_b_clicked()
{
boardidx=1;
showpassage();
}
void Dialog::on_button_c_clicked()
{
boardidx=2;
showpassage();
}
void Dialog::on_button_d_clicked()
{
boardidx=3;
showpassage();
}
void Dialog::on_push_cancel_clicked()
{
}
void Dialog::on_push_previous_clicked()
{
}
void Dialog::on_push_next_clicked()
{
ui->tableWidget->clearContents();
close();
}
- 1
- 2
前往页