pyqt 修改表格当前行左侧边框颜色
时间: 2023-11-17 20:01:52 浏览: 62
可以通过在QSS样式中设置QTableWidget::item:selected的border-left属性来修改表格当前行左侧边框颜色。具体实现方法如下:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
from PyQt5.QtGui import QColor
import sys
app = QApplication(sys.argv)
table = QTableWidget()
table.setRowCount(3)
table.setColumnCount(3)
for i in range(3):
for j in range(3):
item = QTableWidgetItem("({},{})".format(i, j))
table.setItem(i, j, item)
# 设置QSS样式
table.setStyleSheet("QTableWidget::item:selected{border-left: 5px solid red;}")
table.show()
sys.exit(app.exec_())
```
上述代码中,我们首先创建了一个QTableWidget对象,并设置了行数和列数。然后,我们使用两个for循环向表格中添加了一些数据。接着,我们通过设置QSS样式来修改了表格当前行左侧边框的颜色为红色。最后,我们将表格显示出来。
相关问题
pyqt获取表格点击当前行号
在 PyQt 中,可以通过 QTableWidget 的信号和方法来获取当前点击的表格行号。下面是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.tableWidget = QTableWidget(self)
self.tableWidget.setRowCount(5)
self.tableWidget.setColumnCount(3)
# 为表格添加数据
for row in range(5):
for col in range(3):
item = QTableWidgetItem(f"Row{row} Col{col}")
self.tableWidget.setItem(row, col, item)
# 连接表格的单击事件
self.tableWidget.itemClicked.connect(self.on_item_clicked)
def on_item_clicked(self, item):
current_row = item.row()
print("当前行号:", current_row)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在上面的示例中,我们创建了一个带有 5 行 3 列的表格,并为每个单元格添加了数据。通过连接 `itemClicked` 信号,当用户单击表格中的任何单元格时,会调用 `on_item_clicked` 方法。在 `on_item_clicked` 方法中,通过 `item.row()` 方法获取当前点击的行号,并进行相应的处理。
注意:需要先安装 PyQt5 包才能运行上述代码。你可以使用 pip 命令进行安装:`pip install pyqt5`。
pyqt5表格怎么删除一行
要在 PyQt5 表格中删除一行,可以使用 `QTableWidget` 类的 `removeRow()` 方法。该方法需要指定要删除的行的索引。
以下是一个示例代码片段,演示如何删除表格中的第一行:
```python
from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem
# 创建表格并添加数据
table = QTableWidget()
table.setRowCount(3)
table.setColumnCount(2)
table.setItem(0, 0, QTableWidgetItem("1"))
table.setItem(0, 1, QTableWidgetItem("A"))
table.setItem(1, 0, QTableWidgetItem("2"))
table.setItem(1, 1, QTableWidgetItem("B"))
table.setItem(2, 0, QTableWidgetItem("3"))
table.setItem(2, 1, QTableWidgetItem("C"))
# 删除第一行
table.removeRow(0)
```
在上面的代码中,我们先创建了一个 `QTableWidget` 对象,并添加了一些数据。然后,通过调用 `removeRow()` 方法,删除了第一行。