void CWizTitleBar::mouseDoubleClickEvent ( QMouseEvent * event ) { if (event->button() == Qt::LeftButton) { showMaxRestore(); } }
/** * 鼠标双击事件 * @event 事件 */ void AppUi::mouseDoubleClickEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton && event->y() <= APP_WINDOW_ZOOM_CLICK && event->y() > APP_WINDOW_ZOOM_PADDING) { showMaxRestore(); } }
/*! * @brief Create and setup a cutom TitleBar * * Create and setup a cutom TitleBar */ TitleBar::TitleBar(QWidget *parent, QWidget *mainw) : QWidget(parent) { mainwin = mainw; mMaxNormal = false; setObjectName("titlebar"); // Top right buttons/icons mMinimizeButton = new QToolButton(this); mMaximizeButton = new QToolButton(this); mCloseButton = new QToolButton(this); QIcon closeicon = QIcon(":/winicons/closeNorm.png"); QIcon minicon = QIcon(":/winicons/minNorm.png"); maxicon = QIcon(":/winicons/maxNorm.png"); resticon = QIcon(":/winicons/restNorm.png"); mCloseButton->setIcon(closeicon); mCloseButton->setObjectName("closeWindowBtn"); mMinimizeButton->setIcon(minicon); mMaximizeButton->setIcon(maxicon); // Logo QLabel *logo = new QLabel(); QPixmap p = QIcon("://logo3.png").pixmap(QSize(22, 22)); logo->setPixmap(p.scaled(22, 22, Qt::KeepAspectRatio, Qt::SmoothTransformation)); logo->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); // Title QFont f("Arial", 12, QFont::Bold); mLabel = new QLabel(); mLabel->setText(mainwin->windowTitle()); mLabel->setFont(f); mLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); // Title layout QHBoxLayout *hbox = new QHBoxLayout(this); hbox->setSpacing(0); hbox->setMargin(0); hbox->addWidget(logo); hbox->addWidget(mLabel); hbox->addWidget(mMinimizeButton); hbox->addWidget(mMaximizeButton); hbox->addWidget(mCloseButton); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); connect(mCloseButton, SIGNAL(clicked()), mainwin, SLOT(close())); connect(mMinimizeButton, SIGNAL(clicked()), this, SLOT(showSmall())); connect(mMaximizeButton, SIGNAL(clicked()), this, SLOT(showMaxRestore())); setMaximumHeight(24); }
TitleBar::TitleBar(QWidget *parent, QString* title) { // Don't let this widget inherit the parent's backround color // setAutoFillBackground(true); // Use a brush with a Highlight color role to render the background setBackgroundRole(QPalette::NoRole); minimize = new QToolButton(this); minimize->setObjectName("minimizeButton"); maximize = new QToolButton(this); maximize->setObjectName("maximizeButton"); close = new QToolButton(this); close->setObjectName("closeButton"); // Use the style to set the button pixmaps QPixmap pix = style()->standardPixmap(QStyle::SP_TitleBarCloseButton); close->setIcon(pix); close->setAutoRaise(true); maxPix = style()->standardPixmap(QStyle::SP_TitleBarMaxButton); maximize->setIcon(maxPix); maximize->setAutoRaise(true); pix = style()->standardPixmap(QStyle::SP_TitleBarMinButton); minimize->setIcon(pix); minimize->setAutoRaise(true); restorePix = style()->standardPixmap(QStyle::SP_TitleBarNormalButton); // minimize->setMinimumHeight(20); // close->setMinimumHeight(20); // maximize->setMinimumHeight(20); label = new QLabel(this); label->setAttribute(Qt::WA_Disabled); QHBoxLayout *hbox = new QHBoxLayout(this); hbox->setContentsMargins ( 0,0,0,0 ); hbox->addWidget(label); hbox->addWidget(minimize, 0, Qt::AlignTop); hbox->addWidget(maximize, 0, Qt::AlignTop); hbox->addWidget(close, 0, Qt::AlignTop); hbox->insertStretch(1, 500); hbox->setSpacing(0); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); maxNormal = false; connect(close, SIGNAL( clicked() ), parent->parentWidget(), SLOT(close() ) ); connect(minimize, SIGNAL( clicked() ), this, SLOT(showSmall() ) ); connect(maximize, SIGNAL( clicked() ), this, SLOT(showMaxRestore() ) ); }
int TitleBar::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: showSmall(); break; case 1: showMaxRestore(); break; default: ; } _id -= 2; } return _id; }
void ManagerWindow::connectSlots() { // connect(ui->callButton, SIGNAL(clicked()), // this, SLOT(placeCall())); connect(this->ui->aboutButton, SIGNAL(clicked()), this, SLOT(about())); connect(this->ui->minimizeButton, SIGNAL(clicked()), this, SLOT(minimizeToTray())); connect(this->ui->maximizeButton, SIGNAL(clicked()), this, SLOT(showMaxRestore())); connect(this->ui->startPauseButton, SIGNAL(clicked()), this, SLOT(agentStartPause())); // connect(this->ui->passwordButton, SIGNAL(clicked()), // this, SIGNAL(changePassword())); connect(this->ui->closeButton, SIGNAL(clicked(bool)), this, SLOT(quit(bool))); connect(this->trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); connect(this->ui->accountsTabWidget, SIGNAL(currentChanged(int)), this, SLOT(switchAccount(int))); }
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()); }
void TitleBar::mouseDoubleClickEvent ( QMouseEvent * e ) { showMaxRestore(); }
CWizTitleBar::CWizTitleBar(QWidget *parent, QWidget* window, QWidget* shadowContainerWidget) : QWidget(parent) , m_window(window) , m_shadowContainerWidget(shadowContainerWidget) , m_oldContentsMargin(10, 10, 10, 10) , m_canResize(true) { // 不继承父组件的背景色 setAutoFillBackground(true); m_minimize = new QToolButton(this); m_maximize = new QToolButton(this); m_close = new QToolButton(this); // 设置按钮图像的样式 QString themeName = Utils::StyleHelper::themeName(); QString strButtonClose = ::WizGetSkinResourceFileName(themeName, "linuxwindowclose"); QString strButtonCloseOn = ::WizGetSkinResourceFileName(themeName, "linuxwindowclose_on"); QString strButtonCloseSelected = ::WizGetSkinResourceFileName(themeName, "linuxwindowclose_selected"); QString strButtonMin = ::WizGetSkinResourceFileName(themeName, "linuxwindowmin"); QString strButtonMinOn = ::WizGetSkinResourceFileName(themeName, "linuxwindowmin_on"); QString strButtonMinSelected = ::WizGetSkinResourceFileName(themeName, "linuxwindowmin_selected"); QString strButtonMax = ::WizGetSkinResourceFileName(themeName, "linuxwindowmax"); QString strButtonMaxOn = ::WizGetSkinResourceFileName(themeName, "linuxwindowmax_on"); QString strButtonMaxSelected = ::WizGetSkinResourceFileName(themeName, "linuxwindowmax_selected"); QString strButtonRestore = ::WizGetSkinResourceFileName(themeName, "linuxwindowrestore"); QString strButtonRestoreOn = ::WizGetSkinResourceFileName(themeName, "linuxwindowrestore_on"); QString strButtonRestoreSelected = ::WizGetSkinResourceFileName(themeName, "linuxwindowrestore_Selected"); m_close->setStyleSheet(QString("QToolButton{ border-image:url(%1);background:none;}" "QToolButton:hover{border-image:url(%2); background:none;}" "QToolButton::pressed{border-image:url(%3); background:none;}") .arg(strButtonClose).arg(strButtonCloseOn).arg(strButtonCloseSelected)); m_minimize->setStyleSheet(QString("QToolButton{ border-image:url(%1); background:none;}" "QToolButton:hover{border-image:url(%2); background:none;}" "QToolButton::pressed{border-image:url(%3); background:none;}") .arg(strButtonMin).arg(strButtonMinOn).arg(strButtonMinSelected)); m_maxSheet = QString("QToolButton{ border-image:url(%1); background:none;}" "QToolButton:hover{border-image:url(%2); background:none;}" "QToolButton::pressed{border-image:url(%3); background:none;}") .arg(strButtonMax).arg(strButtonMaxOn).arg(strButtonMaxSelected); m_maximize->setStyleSheet(m_maxSheet); m_restoreStyleSheet = QString("QToolButton{ border-image:url(%1); background:none;}" "QToolButton:hover{border-image:url(%2); background:none;}" "QToolButton::pressed{border-image:url(%3); background:none;}") .arg(strButtonRestore).arg(strButtonRestoreOn).arg(strButtonRestoreSelected); m_close->setFixedSize(16, 16); m_minimize->setFixedSize(16, 16); m_maximize->setFixedSize(16, 16); m_titleLabel = new QLabel(this); m_titleLabel->setText(""); m_window->setWindowTitle(""); connect(m_close, SIGNAL( clicked() ), m_window, SLOT(close() ) ); connect(m_minimize, SIGNAL( clicked() ), this, SLOT(showSmall() ) ); connect(m_maximize, SIGNAL( clicked() ), this, SLOT(showMaxRestore() ) ); // setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); }