//槽函数--slot_btnclick void TitleBar::slot_btnclick() { QToolButton *pBtn = (QToolButton*)(sender()); if(pBtn==m_pBtnMin) { emit signal_min(); } if(pBtn==m_pBtnMax) { emit signal_maxrestore(); } if(pBtn==m_pBtnClose) { emit signal_close(); } }
MainWindow::MainWindow(QFrame *parent) : QFrame(parent),isLeftNaviVisuable(true) { setWindowFlags(Qt::FramelessWindowHint); setMouseTracking(true); setAttribute(Qt::WA_Hover, true); QString fileName("/style/system.qss"); QFile file(fileName); if (!file.open(QFile::ReadOnly)) { file.setFileName(":/style/system.qss"); file.open(QFile::ReadOnly); } setStyleSheet(file.readAll()); file.close(); ptrHeaderBar = new HeaderBar(this);//创建标题栏 ptrStatusBar = new StatusBar(this);//创建状态栏 QString msg = "Ready"; ptrStatusBar->setMessage(msg); lft = new LeftNavi(this); lft->setFrameStyle(QFrame::NoFrame); rgt = new QStackedWidget(this); rgt->setObjectName("rgt"); rgt->setFrameStyle(QFrame::NoFrame); NetPlanView *tpview = new NetPlanView(); rgt->addWidget(tpview); NetResView *resview = new NetResView(); rgt->addWidget(resview); QSplitter *mainSplitter = new QSplitter(this); mainSplitter->setFrameStyle(QFrame::NoFrame); mainSplitter->setHandleWidth(1); mainSplitter->setStyleSheet( QString("QSplitter::handle {background: qlineargradient(" "x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 %1, stop: 0.07 %2);}"). arg(qApp->palette().background().color().name()). arg(qApp->palette().color(QPalette::Dark).name())); mainSplitter->setChildrenCollapsible(false); mainSplitter->addWidget(lft); mainSplitter->addWidget(rgt); mainSplitter->setStretchFactor(20,80); createToolBarNull(); QHBoxLayout *ptrHLayout = new QHBoxLayout(); ptrHLayout->setMargin(0); ptrHLayout->setSpacing(0); ptrHLayout->addWidget(pushButtonNull_); ptrHLayout->addWidget(mainSplitter); QVBoxLayout *ptrVLayout = new QVBoxLayout();//创建布局 ptrVLayout->addWidget(ptrHeaderBar);//将部件加入到布局中 ptrVLayout->addLayout(ptrHLayout); ptrVLayout->addWidget(ptrStatusBar); ptrVLayout->setSpacing(0); //设置间距与边缘空白 ptrVLayout->setContentsMargins(VALUE_DIS,VALUE_DIS,VALUE_DIS,VALUE_DIS); setLayout(ptrVLayout); setMinimumWidth(800); setMinimumHeight(600); createActions(); FramelessHelper *pHelper = new FramelessHelper(this); pHelper->activateOn(this); //激活当前窗体 pHelper->setBorderWidth(VALUE_DIS); pHelper->setTitleHeight(HEADER_H); //设置窗体的标题栏高度 pHelper->setWidgetMovable(true); //设置窗体可移动 pHelper->setWidgetResizable(true); //设置窗体可缩放 connect(ptrHeaderBar, SIGNAL(signal_menu(QPoint)), this, SLOT(showMenu(QPoint))); connect(ptrHeaderBar, SIGNAL(signal_maxrestore()), this, SLOT(showMaxRestore())); //lft->setDatabase(db.db()); }