pyqt 那些‘坑’(二)

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_())
相關文章
相關標籤/搜索