pyqt tableWIdget点击单元格打开QFileDialog窗口
时间: 2023-10-09 19:07:49 浏览: 145
可以使用QTableWidgetItem的setFlags方法设置单元格为可编辑,然后通过调用QFileDialog的getOpenFileName方法来获取文件名。代码示例如下:
```python
from PyQt5.QtWidgets import QFileDialog, QTableWidgetItem
# 在单元格点击事件中添加以下代码
def on_table_cell_clicked(self, row, column):
item = self.tableWidget.item(row, column)
if item is None:
item = QTableWidgetItem()
self.tableWidget.setItem(row, column, item)
item.setFlags(item.flags() | Qt.ItemIsEditable)
filename, _ = QFileDialog.getOpenFileName(self, '选择文件')
if filename:
item.setText(filename)
```
相关问题
pyqt tablewidget 设置单元格可编辑
可以通过设置单元格的属性来设置单元格可编辑,具体步骤如下:
1. 设置表格为可编辑模式
```python
tableWidget.setEditTriggers(QAbstractItemView.DoubleClicked)
```
2. 设置单元格为可编辑状态
```python
item = QTableWidgetItem("text")
item.setFlags(Qt.ItemIsSelectable|Qt.ItemIsEnabled|Qt.ItemIsEditable)
tableWidget.setItem(row, col, item)
```
其中,`Qt.ItemIsSelectable` 表示可选中,`Qt.ItemIsEnabled` 表示可用,`Qt.ItemIsEditable` 表示可编辑。
pyqt tableWIdge某个单元格点击打开QFileDialog
可以使用如下代码实现:
```
from PyQt5.QtWidgets import QApplication, QFileDialog, QTableWidget, QTableWidgetItem
def open_file_dialog():
file_names, _ = QFileDialog.getOpenFileNames(None, "Open File", "", "All Files(*);;Text Files(*.txt)")
if file_names:
print("Selected Files:", file_names)
table_widget = QTableWidget()
table_widget.setRowCount(2)
table_widget.setColumnCount(2)
item = QTableWidgetItem("Click here to open file dialog")
table_widget.setItem(0, 0, item)
item = QTableWidgetItem("Another cell")
table_widget.setItem(0, 1, item)
item = QTableWidgetItem("Yet another cell")
table_widget.setItem(1, 0, item)
item = QTableWidgetItem("Final cell")
table_widget.setItem(1, 1, item)
table_widget.cellClicked.connect(lambda row, column: open_file_dialog() if row == 0 and column == 0 else None)
```
阅读全文