从PyQt中的QTableWidget删除水平网格线

时间:2020-01-07 20:09:34

标签: python pyqt qtablewidget

我一直在寻找这个问题并阅读qt文档,但是我能找到的所有答案都是针对Ct的Qt编写的。

我试图了解如何从QTableWidget中删除所有水平网格线,如此处的

QTableWidget

使表格看起来像具有行和列的列表

我尝试使用样式表更改小部件的外观,但是它们似乎对表格的外观没有影响

1 个答案:

答案 0 :(得分:3)

我认为没有内置方法,但是您可以通过样式表删除水平网格线,方法是使用function runTwo() { var ss=SpreadsheetApp.getActive(); var sh=ss.getActiveSheet(); var rg=sh.getRange(10,1,1,sh.getLastColumn()); if(rg.getMergedRanges()[0].getValue()=="Upfront Costs") { var mrg=rg.getMergedRanges()[0]; var vA=sh.getRange(13,mrg.getColumn(),1,mrg.getWidth()).getDisplayValues()[0]; var fA=sh.getRange(13,mrg.getColumn(),1,mrg.getWidth()).getFormulas()[0]; var sum=0; vA.forEach(function(e,i){if(!fA[i]){sum+=Number(e);}}) SpreadsheetApp.getUi().alert('Range: ' + mrg.getA1Notation() + ' Sum: ' + sum); return sum; }else{ SpreadsheetApp.getUi().alert('Does not meet criteria'); } } 禁用网格线,然后使用setShowGrid(False)选择器和{ {1}}样式如下:

QTableView::item

enter image description here

这是一个简单的例子

border-right

注意:如果要删除垂直网格线,请将样式从tableWidget.setShowGrid(False) tableWidget.setStyleSheet('QTableView::item {border-right: 1px solid #d6d9dc;}') 更改为from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout import sys class Table(QWidget): def __init__(self): super().__init__() self.setGeometry(0, 0, 300, 200) self.create_table() self.layout = QVBoxLayout() self.layout.addWidget(self.tableWidget) self.setLayout(self.layout) self.show() def create_table(self): self.tableWidget = QTableWidget() self.tableWidget.setRowCount(4) self.tableWidget.setColumnCount(2) self.tableWidget.setItem(0,0, QTableWidgetItem("Cell (1,1)")) self.tableWidget.setItem(0,1, QTableWidgetItem("Cell (1,2)")) self.tableWidget.setItem(1,0, QTableWidgetItem("Cell (2,1)")) self.tableWidget.setItem(1,1, QTableWidgetItem("Cell (2,2)")) self.tableWidget.setItem(2,0, QTableWidgetItem("Cell (3,1)")) self.tableWidget.setItem(2,1, QTableWidgetItem("Cell (3,2)")) self.tableWidget.setItem(3,0, QTableWidgetItem("Cell (4,1)")) self.tableWidget.setItem(3,1, QTableWidgetItem("Cell (4,2)")) self.tableWidget.move(0,0) # Remove horizontal gridlines self.tableWidget.setShowGrid(False) self.tableWidget.setStyleSheet('QTableView::item {border-right: 1px solid #d6d9dc;}') if __name__ == '__main__': app = QApplication(sys.argv) table = Table() sys.exit(app.exec_())

enter image description here