def paint(self, painter, option, index): print(option.state) font = QtWidgets.QFont("Sans", 11, QtWidgets.QFont.Normal) if option.state == QtWidgets.QStyle.State_Selected: print("selected") font.setStyle(QtWidgets.QFont.Bold) r = option.rect align = QtCore.Qt.AlignVCenter | QtCore.Qt.AlignLeft | QtCore.Qt.TextWordWrap painter.setFont(font) painter.drawText(r.left(), r.top(), r.width(), r.height(), align, index.data())
def __init__(self, parent=None): super(TitleBar, self).__init__(parent) # 支持qss设置背景 self.setAttribute(QtCore.Qt.WA_StyledBackground, True) self.mPos = None self.iconSize = 20 # 图标的默认大小 # 设置默认背景颜色,否则由于受到父窗口的影响导致透明 self.setAutoFillBackground(True) palette = self.palette() palette.setColor(palette.Window, QtGui.QColor(240, 240, 240)) self.setPalette(palette) # 布局 layout = QtWidgets.QHBoxLayout(self, spacing=0) layout.setContentsMargins(0, 0, 0, 0) # 窗口图标 self.iconLabel = QtWidgets.QLabel(self) # self.iconLabel.setScaledContents(True) layout.addWidget(self.iconLabel) # 窗口标题 self.titleLabel = QtWidgets.QLabel(self) self.titleLabel.setMargin(2) layout.addWidget(self.titleLabel) # 中间伸缩条 layout.addSpacerItem( QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)) # 利用Webdings字体来显示图标 font = self.font() or QtWidgets.QFont() font.setFamily('Webdings') # 最小化按钮 self.buttonMinimum = QtWidgets.QPushButton( '—', self, clicked=self.windowMinimumed.emit, font=font, objectName='buttonMinimum') layout.addWidget(self.buttonMinimum) # 最大化/还原按钮 ''' self.buttonMaximum = QtWidgets.QPushButton( '1', self, clicked=self.showMaximized, font=font, objectName='buttonMaximum') layout.addWidget(self.buttonMaximum) ''' # 关闭按钮 self.buttonClose = QtWidgets.QPushButton( 'x', self, clicked=self.windowClosed.emit, font=font, objectName='buttonClose') layout.addWidget(self.buttonClose) # 初始高度 self.setHeight()
def initUI(self): #----------MainFrame parameters----------# self.setWindowTitle("APPA " + var.version) self.setFixedSize(700, 550) self.center() #-------------------------------------# #---------------Creation of menubar----------------------------------# self.open = QtWidgets.QAction('&Open', self) self.open.setShortcut('Ctrl+O') self.open.setStatusTip('Open File') self.connect(self.open, QtCore.SIGNAL('triggered()'), self.showDialog) self.close = QtWidgets.QAction('&Exit', self) self.close.setShortcut('Ctrl+Q') self.close.setStatusTip('Exit application') self.connect(self.close, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) self.save = QtWidgets.QAction('&Save', self) self.save.setShortcut('Ctrl+S') self.save.setStatusTip('Save simulation data') self.connect(self.save, QtCore.SIGNAL('triggered()'), self.showSave) self.export = QtWidgets.QAction('E&xport (.xyz)', self) self.export.setShortcut('Ctrl+X') self.export.setStatusTip('Export data to XYZ file') self.connect(self.export, QtCore.SIGNAL('triggered()'), self.showExport) self.menubar = self.menuBar() self.fileMenu1 = self.menubar.addMenu('&File') self.fileMenu1.addAction(self.open) self.fileMenu1.addAction(self.save) self.fileMenu1.addAction(self.export) self.fileMenu1.addAction(self.close) self.ec = QtWidgets.QAction('&Elastics constants', self) self.ec.setShortcut('Ctrl+E') self.ec.setStatusTip('Calculation of Elastics constants') self.connect(self.ec, QtCore.SIGNAL('triggered()'), self.showElastics) self.fileMenu2 = self.menubar.addMenu('&Calculation') self.fileMenu2.addAction(self.ec) self.unit = QtWidgets.QAction('&Units', self) self.unit.setShortcut('Ctrl+U') self.unit.setStatusTip('change physical units') self.connect(self.unit, QtCore.SIGNAL('triggered()'), self.showConv) self.fileMenu3 = self.menubar.addMenu('&Option') self.fileMenu3.addAction(self.unit) self.about = QtWidgets.QAction('&About', self) self.about.setShortcut('Ctrl+A') self.about.setStatusTip('About software') self.connect(self.about, QtCore.SIGNAL('triggered()'), self.showAbout) self.fileMenu3 = self.menubar.addMenu('&APPA') self.fileMenu3.addAction(self.about) #---------------------------------------------------------------------# #----------------Creation of statusBar--------------------# self.setStatusBar(QtWidgets.QStatusBar()) #---------------------------------------------------------# #-------Creation of CentralWidget-----------------------------------------# self.widget = QtWidgets.QWidget() self.widget_layout = QtWidgets.QGridLayout() self.widget.setLayout(self.widget_layout) self.box1 = QtWidgets.QGroupBox() self.box1layout = QtWidgets.QGridLayout() self.box1.setLayout(self.box1layout) self.lbltitle = QtWidgets.QLabel("Abinit Post-Process Application") self.lbltitle.setFont(QtWidgets.QFont("calibri", 25)) self.lbltitle.setFixedWidth(520) self.box1layout.addWidget(self.lbltitle, 1, 0) self.tab = QtWidgets.QTabWidget() self.tab.setTabsClosable(True) self.connect(self.tab, QtCore.SIGNAL('tabCloseRequested (int)'), self.closeTab) self.tab.setTabPosition(1) #----------Try to open the last .nc and .HIST files------------# # MD_file = Read.MolecularDynamicFile("") # if MD_file.isGoodFile(): # self.page1 = MD.Netcdf_MD(MD_file,self.units) # self.tab.addTab(self.page1,MD_file.getNameFile()) #----------Try to open the last Ground State file(BETA)--------# #GS_file = Read.outputFile("") #if GS_file.isGoodFile(): # self.page2 = GS.Ouput_GS(GS_file,self.units) # self.tab.addTab(self.page2,str(GS_file.getNameFile())) #Connection of Signal (for the threading): self.connect(self, QtCore.SIGNAL("Reading(PyQt_PyObject)"), self.add) self.widget_layout.addWidget(self.box1, 1, 0, 1, 2) self.widget_layout.addWidget(self.tab, 2, 0, 5, 2) self.setCentralWidget(self.widget) #------------------------------------------------------------------------# self.show() #if self.tab.count() == 0: # self.showDialog() """