qtablewidget设置不可选中
时间: 2023-08-05 18:59:00 浏览: 71
可以通过设置QTableWidget的属性来实现不可选中,具体方法如下:
1. 设置QTableWidget的选择模式为NoSelection,即不可选中:
```python
tableWidget.setSelectionMode(QAbstractItemView.NoSelection)
```
2. 禁用QTableWidget的编辑功能,即不可编辑:
```python
tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
```
通过以上两步设置,即可实现QTableWidget不可选中。
相关问题
pyqt Qtablewidget表格设置成不可选中
要将一个 QTableWidget 设置为不可选中,你可以使用 setSelectionMode 方法并将其参数设置为 QAbstractItemView.NoSelection。这将禁用对表格中的单元格进行选择。
以下是一个示例代码片段,演示如何设置一个 QTableWidget 为不可选中:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QAbstractItemView
app = QApplication([])
table_widget = QTableWidget()
table_widget.setSelectionMode(QAbstractItemView.NoSelection)
# 添加表格内容
table_widget.setColumnCount(3)
table_widget.setRowCount(2)
table_widget.setItem(0, 0, QTableWidgetItem("Item 1"))
table_widget.setItem(0, 1, QTableWidgetItem("Item 2"))
table_widget.setItem(0, 2, QTableWidgetItem("Item 3"))
table_widget.setItem(1, 0, QTableWidgetItem("Item 4"))
table_widget.setItem(1, 1, QTableWidgetItem("Item 5"))
table_widget.setItem(1, 2, QTableWidgetItem("Item 6"))
table_widget.show()
app.exec_()
```
在这个示例中,我们首先创建了一个 QTableWidget 对象,并设置其选择模式为 `QAbstractItemView.NoSelection`。然后,我们添加了一些表格内容,并显示出来。现在,用户将无法通过单击或拖动来选择表格中的单元格。
希望这可以帮助到你!如果你有任何其他问题,请随时提问。
pyqt5 QTableWidget 设置右键后不取消
可以通过设置QTableWidget的上下文菜单策略来实现右键点击后不取消的效果。具体步骤如下:
1. 创建一个自定义的QTableWidget子类,并重写其contextMenuEvent方法,用于处理右键菜单事件。
2. 在contextMenuEvent方法中创建并显示自定义的右键菜单。
3. 在右键菜单的每个动作中,设置setCheckable(True)以使其可选中,并设置setChecked(True)以保持选中状态。
4. 在每个动作的triggered信号中,添加相应的处理逻辑。
下面是一个示例代码:
```python
from PyQt5.QtWidgets import QTableWidget, QMenu, QAction
class CustomTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.showContextMenu)
def showContextMenu(self, pos):
menu = QMenu(self)
action1 = QAction("Action 1", self)
action1.setCheckable(True)
action1.setChecked(True)
action1.triggered.connect(self.action1Clicked)
menu.addAction(action1)
action2 = QAction("Action 2", self)
action2.setCheckable(True)
action2.setChecked(True)
action2.triggered.connect(self.action2Clicked)
menu.addAction(action2)
menu.exec_(self.mapToGlobal(pos))
def action1Clicked(self):
# 处理Action 1的逻辑
pass
def action2Clicked(self):
# 处理Action 2的逻辑
pass
```
你可以将上述代码添加到你的PyQt5应用程序中,并使用CustomTableWidget替换原来的QTableWidget,以实现右键点击后不取消的效果。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)