我一直在寻找这个问题并阅读qt文档,但是我能找到的所有答案都是针对Ct的Qt编写的。
我试图了解如何从QTableWidget中删除所有水平网格线,如此处的
使表格看起来像具有行和列的列表
我尝试使用样式表更改小部件的外观,但是它们似乎对表格的外观没有影响
答案 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
这是一个简单的例子
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_())