#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSettings>
#include <QDebug>
#include <QTextCodec>
#include <QLineSeries>
#include <QSplineSeries>
#include <QGraphicsScene>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
m_coordX(0),
m_coordY(0),
tpChart(0),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tpMdiArea = new QMdiArea;
this->setCentralWidget(tpMdiArea);
QMdiSubWindow *subWin = new QMdiSubWindow;
subWin->setWidget(ui->tabWidget);
subWin->setAttribute(Qt::WA_DeleteOnClose);
tpMdiArea->addSubWindow(subWin);
subWin->setWindowFlags(Qt::FramelessWindowHint);
subWin->show();
//ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
ui->tabWidget->setTabText(2,tr("C:\\MyData\\Test.wav"));
tpChart = new QChart;
tpChart->setTitle("TP System Chart");
ui->chart->setFixedWidth(1200);
ui->chart->setFixedHeight(400);
ui->chart->setChart(tpChart);
ui->tabWidget->setFixedWidth(1400);
m_coordX = new QGraphicsSimpleTextItem(tpChart);
m_coordX->setPos(tpChart->size().width()/2 - 50, tpChart->size().height());
m_coordX->setText("X: ");
m_coordY = new QGraphicsSimpleTextItem(tpChart);
m_coordY->setPos(tpChart->size().width()/2 + 50, tpChart->size().height());
m_coordY->setText("Y: ");
for(int i=0; i<ui->tabWidget->count(); i++)
{
changeBtn = new QPushButton;
QIcon button_icogrey("images/greyIco.png");
changeBtn->setObjectName("btnC"+QString::number(i));
changeBtn->setMinimumSize(16,16);
changeBtn->setMaximumSize(16,16);
changeBtn->setIcon(button_icogrey);
changeBtn->setIconSize(QSize(16,16));
QObject::connect(changeBtn, SIGNAL(clicked(bool)),this,SLOT(on_changeBtn_clicked()));
ui->statusBar->addWidget(changeBtn);
}
isDoubleClicked = 0; //初始化不点击
pQTimerDoubleClicked = new QTimer(this); //新建定时器
isEnabledCH1series = false;
isEnabledCH2series = false;
isEnabledCH3series = false;
isEnabledCH4series = false;
isEnabledCH5series = false;
isEnabledCH6series = false;
isEnabledCH7series = false;
isEnabledCH8series = false;
//初始化工具栏和对应的图标
mainToolBar = new QToolBar(this);
actionFile = new QAction(this);
actionFile->setIcon(QIcon(":/images/file.png"));
actionTestPro = new QAction(this);
actionTestPro->setIcon(QIcon(":/images/testProject.png"));
actionForceStart = new QAction(this);
actionForceStart->setIcon(QIcon(":/images/forceS.png"));
actionRealTimeData = new QAction(this);
actionRealTimeData->setIcon(QIcon(":/images/realTimedata.png"));
actionStart = new QAction(this);
actionStart->setIcon(QIcon(":/images/start.png"));
actionStartN = new QAction(this);
actionStartN->setIcon(QIcon(":/images/startN.png"));
actionStop = new QAction(this);
actionStop->setIcon(QIcon(":/images/stop.png"));
actionStore = new QAction(this);
actionStore->setIcon(QIcon(":/images/store.png"));
actionTestPara = new QAction(this);
actionTestPara->setIcon(QIcon(":/images/testPara.png"));
//创建主工具栏按钮
mainToolBar->addAction(actionFile);
mainToolBar->addAction(actionTestPro);
mainToolBar->addAction(actionForceStart);
mainToolBar->addAction(actionRealTimeData);
mainToolBar->addAction(actionStart);
mainToolBar->addAction(actionStartN);
mainToolBar->addAction(actionStop);
mainToolBar->addAction(actionStore);
mainToolBar->addAction(actionTestPara);
mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
ReadSettings();//读取配置文件 工具栏按钮文字信息
// QLabel *Titlelabel = new QLabel(this);
// Titlelabel->setText(tr(" 虚拟仪器平台"));
closeBtn = new QToolButton(this);
QPixmap closePix = style()->standardPixmap(QStyle::SP_TitleBarCloseButton);
closeBtn->setIcon(closePix);
int width = this->width();
closeBtn->setGeometry(width-25,5,1400,20);
closeBtn->setToolTip(tr("关闭"));
closeBtn->setStyleSheet("background-color:transparent;");
QHBoxLayout *hbox = new QHBoxLayout(this);
// hbox->addWidget(Titlelabel);
// hbox->addWidget(closeBtn);
mainToolBar->setStyleSheet("background-color:transparent;");
//hbox->addWidget(mainToolBar);
setLayout(hbox);\
addToolBar(mainToolBar);
init_sig_slots();//初始化槽函数
}
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
m_Drag = true;
m_DragPosition = event->globalPos() - this->pos();
event->accept();
}
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
if (m_Drag && (event->buttons() && Qt::LeftButton)) {
move(event->globalPos() - m_DragPosition);
event->accept();
}
}
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
m_Drag = false;
event->accept();
}
void MainWindow::init_sig_slots()
{
QObject::connect(ui->btnCH1, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH2, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH3, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH4, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH5, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH6, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH7, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(ui->btnCH8, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::connect(pQTimerDoubleClicked,SIGNAL(timeout()),this,SLOT(timerSingleClick())); //关联定时器和槽函数
QObject::connect(closeBtn, SIGNAL(clicked()), this, SLOT(close())); //关闭窗口和槽函数
}
void MainWindow::uninit_sig_slots()
{
QObject::disconnect(ui->btnCH1, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH2, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH3, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH4, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH5, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH6, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH7, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
QObject::disconnect(ui->btnCH8, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
for(int i=0; i<ui->tabWidget->count(); i++)
{
QObject::disconnect(changeBtn, SIGNAL(clicked(bool)),this,SLOT(on_clickCH()));
}
}
MainWindow::~MainWindow()
{
delete ui;
delete tpChart;//删除chart
tpChart = NULL;
uninit_sig_slots();
}
void MainWindow::WriteSettings()
{
//do not implement
}
void MainWindow::ReadSettings()
{
QSettings *configIniRead = new QSettings("cfgs/cfg.ini", QSettings::IniFormat);
//将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
configIniRead->setIniCodec(QTextCodec::codecForName("GB2312"));//设置编码格式
actionFile->setText(configIniRead->value("/ToolBarText/file").toString());
actionFile->setStatusTip(configIniRead->value("/ToolBarText/file").toString());
actionTestPro->setText(configIniRead->value("ToolBarText/testProject").toString());
actionTestPro->setStatusTip(configIniRead->value("ToolBarText/testProject").toString());
actionForceStart->setText(configIniRead->value("ToolBarText/forceStart").toString());
actionForceStart->setStatusTip(configIniRead->value("ToolBarText/forceStart").toStrin
QT 扁平化自定义风格界面TabWidget为核心
2星 需积分: 44 26 浏览量
2017-03-02
16:04:07
上传
评论 8
收藏 230KB ZIP 举报
飛越無限
- 粉丝: 242
- 资源: 35
最新资源
- java +elasticsearch+倒排索引技术+PUT+GET+全文搜索、短语匹配、近似搜索和聚合等操作高效执行
- ES数据迁移~~~~~~~~~~~~~~
- E3P303-VB一款SOP8封装2个P-Channel场效应MOS管
- SpyGlass-LowPowerRules-Reference
- 基于Java的SSM框架矿建环境搭建设计源码
- SpyGlass-PowerVerifyAdvancedRules-Reference
- java作业管理系统设计(源代码+论文).rar
- 奥迪C6仪表开机报文··
- SpyGlass-PowerEstimate-And-SpyGlass-PowerReduceRules-Reference
- E3P102-VB一款SOP8封装2个P-Channel场效应MOS管
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页