#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为核心
共58个文件
png:35个
h:7个
cpp:7个
2星 需积分: 44 250 下载量 185 浏览量
2017-03-02
16:04:07
上传
评论 8
收藏 230KB ZIP 举报
温馨提示
QT 扁平化界面风格,看起来很像移动端的界面,大气,扁平化走起
资源推荐
资源详情
资源评论
收起资源包目录
QT自定义风格界面TabWidget.zip (58个子文件)
tpaction.h 362B
cfgs
cfg.ini 161B
images
tabSelected.png 4KB
btnch1.png 1KB
btnch4.png 1KB
btn3.png 644B
loading.png 159KB
btn2.png 405B
btnch.png 741B
default.qss 2KB
whiteIco.png 298B
btnch2.png 1KB
pressure.png 1KB
btnch8.png 1KB
stop.png 1001B
btn4.png 631B
bg.png 4KB
tab_list.png 3KB
testPara.png 1KB
bgTab.png 10KB
tabUnSelect.png 3KB
realTimedata.png 926B
forceS.png 1023B
testProject.png 2KB
startN.png 1KB
PlusIcon.png 3KB
greyIco.png 408B
speed.png 1KB
store.png 623B
start.png 979B
file.png 2KB
logo.png 3KB
btnch7.png 1KB
btnch5.png 1KB
58.gif 4KB
btnch3.png 1KB
btn5.png 594B
btnch6.png 1KB
btn1.png 525B
tptabwidget.h 829B
tptabbar.cpp 3KB
tpsystem.qm 175B
tpcommon.h 114B
TPSystem.pro 1KB
settooltipdlg.cpp 2KB
TPSystem.pro.user 23KB
settooltipdlg.h 455B
main.cpp 2KB
tpwidget.cpp 225B
mainwindow.ui 9KB
tpsystem.ts 746B
mainwindow.cpp 13KB
tpwidget.h 531B
mainwindow.h 3KB
tptabwidget.cpp 5KB
tptabbar.h 576B
TPSystem.qrc 1KB
tpaction.cpp 416B
共 58 条
- 1
飛越無限
- 粉丝: 242
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页