from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.Qt import *
import sys
class CustomToolBar(QToolBar):
def __init__(self, parent=None):
super(CustomToolBar, self).__init__(parent)
class Example(QMainWindow):
def __init__(self, parent=None):
super(Example, self).__init__(parent=parent)
self._initUI()
def _initUI(self):
self.resize(500, 400)
self.toolBar = CustomToolBar(self)
self.toolBar.addAction(QIcon('./search.png'), 'item1')
self.toolBar.addAction(QIcon('./search.png'), 'item2')
self.toolBar.addAction(QIcon('./search.png'), 'item3')
self.toolBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.toolBar.setMovable(False)
self.toolBar.setToolTip('hasdf')
self.progressbar = QProgressBar(self)
self.progressbar.setGeometry(0, 0, 500, 1)
#本来想用margin来定位的,qss top, left, right, bottom 这些只能作用子控件,
#用了margin 发现一些问题, margin可以隐式的改变控件的大小,并将其他控件覆盖,导致其他设置的样式不生效
#比如hover 发现设置之后没有应该的样式,
#还有一点就是 css的继承性 在qss 中也是不支持的,可以通过* 设置全部的子控件
self.tab = QTableWidget(self)
self.tab.setColumnCount(4)
self.tab.setColumnWidth(0, 80)
self.tab.setColumnWidth(1, 80)
self.tab.setColumnWidth(2, 80)
self.tab.setColumnWidth(3, 80)
headers = ['header1', 'header2', 'header3', 'header4']
self.tab.setHorizontalHeaderLabels(headers)
self.tab.setGeometry(100, 100, 340, 200)
self.addToolBar(self.toolBar)
self.tab.setShowGrid(False)
verticalhead = self.tab.verticalHeader() #type: QHeaderView
verticalhead.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tab.verticalHeader().setVisible(False)
self.tab.verticalHeader().setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tab.setCornerButtonEnabled(False)
self.setStyleSheet('''
QTableWidget {
background-color: transparent;
border: 0;
}
QHeaderView::section {
background-color: transparent;
border: 1px solid rgb(64, 64, 64);
}
QTableWidget::item{
}
''')
for i in range(10):
self.tab.insertRow(i)
self.tab.setItem(i, 0, QTableWidgetItem('sdfsd'))
self.tab.setItem(i, 1, QTableWidgetItem('sdfsd'))
self.tab.setItem(i, 2, QTableWidgetItem('sdfsd'))
self.tab.setItem(i, 3, QTableWidgetItem('sdfsd'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())