class TabWidget(QTabWidget):
       
    def __init__(self,parent = None):
        super(TabWidget,self).__init__(parent)
       
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setStyleSheet("QTabBar::tab {   "
                            "height: 40px; "
                            "background: rgb(214,214,214,0)   "
                            "}")
        self.closeButton = QPushButton(self)
        self.closeButton.setIcon(QIcon("images/close.png"))
        self.closeButton.setFlat(True)      
        self.mousePressed = False
               
        self.connect(self.closeButton, SIGNAL("clicked()"),self.closeWidget)
        
        self.setTabBar(TabBar(self))
       
    def closeBtn(self):
        return self.closeButton
        
    def closeWidget(self):
        self.emit(SIGNAL("closeWidget"))
        
    def setHasUnderLine(self,flag):
        self.tabBar().setHasUnderLine(flag)
       
    # 分割线
    def addSeperator(self):
        self.setTabEnabled(self.addTab(QWidget(self), "|"),False)
       
    def paintEvent(self,event):
        # 自定义标题,添加关闭按钮
        painter = QPainter(self)
        linearGradient = QLinearGradient(0, 0,0,self.tabBar().frameGeometry().height())
        linearGradient.setColorAt(0, QColor(60,150,255))
        linearGradient.setColorAt(0.05, QColor(6,88,200))
        linearGradient.setColorAt(1, QColor(80,150,255))
        painter.setBrush(QBrush(linearGradient))
        self.menuRect = QRect(0, 0, self.frameGeometry().width(), self.tabBar().height())
        painter.fillRect(self.menuRect, QBrush(linearGradient))
        self.closeButton.move(QPoint(self.geometry().width()-self.closeButton.frameGeometry().width(),
                              (self.tabBar().height()-self.closeButton.frameGeometry().height())/2))
Example #2
0
class ToolWidget(QDialog):
    def __init__(self,parent = None):
        super(ToolWidget,self).__init__(parent)
        
        #self.desktop = QDesktopWidget()
        self.desktop = QApplication.desktop()
#         self.setFixedSize(800,600)
        self.setWindowFlags(Qt.Dialog | Qt.FramelessWindowHint)
        
        self.move((self.desktop.width()-self.width())/2,(self.desktop.height()-self.height())/2)
        
        language = StoreInfoParser.instance().getLanguage()
        m_pTranslator = QTranslator()
        exePath = "./"
        if language == "chinese":
            QmName = "zh_CN.qm"
        else:
            QmName = "en_US.qm"
            
        if(m_pTranslator.load(QmName, exePath)):
            QCoreApplication.instance().installTranslator(m_pTranslator)
        
        self.tabWidget = TabWidget()
        #self.tabWidget.setFont(QFont("Times", 10, QFont.Bold))
        self.tabWidget.setFont(QFont("", 10, QFont.Bold))
        self.tabWidget.netService = NetWidget(self)
        
        self.tabWidget.hardService = HardWidget(self)
        #self.tabWidget.netService.textBrowser.setFixedWidth(self.geometry().width()*4/5)
        self.tabWidget.addTab(self.tabWidget.netService, self.tr("NetInfo"))
        self.tabWidget.addTab(self.tabWidget.hardService, self.tr("HardInfo"))
        
        layout = QVBoxLayout()
        layout.addWidget(self.tabWidget)
        layout.setMargin(0)
        self.setLayout(layout)
        
        self.tabWidget.netService.lineEdit.setFocus(True)
        
        self.closeButton = QPushButton(self)
        self.closeButton.setIcon(QIcon("images/close.png"))
        
        self.closeButton.setFlat(True)      
        self.closeButton.mousePressed = False
        
        self.connect(self.closeButton, SIGNAL("clicked()"),self.cancel)
        #self.connect(self.cancelButton, SIGNAL("clicked()"),self.cancel)
        
    def mouseMoveEvent(self,event):
        if self.closeButton.mousePressed:
            self.move(self.pos() + event.pos() - self.currentPos)   
        self.default = QString()
    def mousePressEvent(self,event):
        if event.buttons() == Qt.LeftButton:
            self.currentPos = event.pos()
            self.closeButton.mousePressed = True
   
    def mouseReleaseEvent(self,event):
        if event.buttons() == Qt.LeftButton:
            self.closeButton.mousePressed = False
            
    def cancel(self):
        self.close() 
        
    def paintEvent(self,event):
        self.closeButton.setFixedSize(30,30)
        self.closeButton.setIconSize(QSize(30,30))
        self.closeButton.move(QPoint(self.geometry().width()-self.closeButton.frameGeometry().width() - (self.tabWidget.tabBar().height()-self.closeButton.geometry().height())/2,(self.tabWidget.tabBar().height()-self.closeButton.geometry().height())/2))
class TabWidget(QTabWidget):
       
    def __init__(self,parent = None):
        super(TabWidget,self).__init__(parent)
        
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setStyleSheet("QTabBar::tab {   "
                            "height: 40px; "
                            "width: 120px;"
                            "margin-top: 10px;"
                            "margin-left: 10px;"
                            "margin-bottom: 1px;"
                            "border-radius:1px;"   
                            "color: rgb(255, 255, 255);"         
                            "background: rgb(100,100,100,0)"
                            "}"
                            
                            "QTabBar::tab:selected{"
                            "background: rgb(255,255,255);"
                            "color: rgb(1, 1, 1);"
                            "}"
                            "QTabBar::tab:!selected:hover{"
                            "background: rgb(8,80,176);"
                            
                            "}"
                            )
       
        self.closeButton = QPushButton(self)
        self.closeButton.setIcon(QIcon("images/close.png"))
        self.closeButton.setFlat(True)      
#         self.closeButton.setStyleSheet("QPushButton::hover{background:rgb(50, 150, 255);};")
        
        self.mousePressed = False
               
        self.connect(self.closeButton, SIGNAL("clicked()"),self.closeWidget)
        
        self.setTabBar(TabBar(self))
        
    def closeBtn(self):
        return self.closeButton
        
    def closeWidget(self):
        self.emit(SIGNAL("closeWidget"))
        
    # 分割线
    def addSeperator(self):
        self.setTabEnabled(self.addTab(QWidget(self), "|"),False)
       
    def paintEvent(self,event):
        # 自定义标题,添加关闭按钮
        painter = QPainter(self)
        linearGradient = QLinearGradient(0, 0,0,self.tabBar().frameGeometry().height())
        linearGradient.setColorAt(0, QColor(60,150,255))
        linearGradient.setColorAt(0.1, QColor(6,88,200))
        linearGradient.setColorAt(1, QColor(80,150,255))
        painter.setBrush(QBrush(linearGradient))
        
        self.menuRect = QRect(0, 0, self.frameGeometry().width(), self.tabBar().height() - 1)#菜单矩形
        
        painter.fillRect(self.menuRect, QBrush(linearGradient))#填充
        
        painter2 = QPainter(self)#画
        brush2 = QBrush(QColor(242,242,242))#笔刷
        painter2.setBrush(brush2)#为画定义笔刷
        self.contenRect2 = QRect(0,self.tabBar().height(),self.frameGeometry().width(),self.frameGeometry().height())
        painter2.fillRect(self.contenRect2, brush2)
        
        self.closeButton.setFixedSize(30,30)
        self.closeButton.move(QPoint(self.geometry().width()-self.closeButton.frameGeometry().width() - 10,
                              (self.tabBar().height()-self.closeButton.frameGeometry().height())/2)) #关闭按钮的位置设定