gpt4 book ai didi

python - 如何将光标放在 QTableWidget 单元格的开头

转载 作者:行者123 更新时间:2023-12-01 06:27:25 24 4
gpt4 key购买 nike

我正在使用以下 PyQt 代码,并且要求光标应在单元格 0,1 的开头闪烁

import sys 
from PyQt4.QtCore import *
from PyQt4.QtGui import *

data = {'col1':['1','2','3'], 'col2':['4','5','6'], 'col3':['7','8','9']}

class MyTable(QTableWidget):
def __init__(self, data, *args):
QTableWidget.__init__(self, *args)
self.data = data
self.setmydata()
self.resizeColumnsToContents()
self.resizeRowsToContents()
self.setCursorPosition()

def setmydata(self):

horHeaders = []
for n, key in enumerate(sorted(self.data.keys())):
horHeaders.append(key)
for m, item in enumerate(self.data[key]):
newitem = QWidget()
self.setCellWidget(m, n, newitem)
self.setHorizontalHeaderLabels(horHeaders)

def setCursorPosition(self):
wid = self.cellWidget(0,1)
wid.setCursor(QCursor(Qt.WaitCursor))
wid.setFocus()

要求是让光标在单元格 0,1 的开头闪烁。方法 setCursorPosition 中的行对我没有帮助。有人可以帮我解决一下吗

最佳答案

根据您的代码,您将 QWidget 设置为不处理光标的单元格小部件,并且不处理闪烁的光标。所以你不应该使用QWidget,也许QLineEdit应该是一个更好的选择,尽管我发现没有必要使用cellwidget,因为使用 edit() 方法打开默认提供的编辑器就足够了。

import sys
from PyQt4.QtGui import QApplication, QTableWidget, QTableWidgetItem


class MyTable(QTableWidget):
def __init__(self, data, parent=None):
super(MyTable, self).__init__(parent)
self.data = data
self.setCustomData()
self.resizeColumnsToContents()
self.resizeRowsToContents()

index = self.model().index(0, 1)
self.edit(index)

def setCustomData(self):
labels = list(self.data.keys())
self.setColumnCount(len(labels))
self.setHorizontalHeaderLabels(labels)

for i, (key, value) in enumerate(self.data.items()):
for j, v in enumerate(value):
if j >= self.rowCount():
self.insertRow(self.rowCount())
it = QTableWidgetItem(v)
self.setItem(j, i, it)


if __name__ == "__main__":
app = QApplication(sys.argv)
data = {"col1": ["1", "2", "3"], "col2": ["4", "5", "6"], "col3": ["7", "8", "9"]}
w = MyTable(data)
w.show()
sys.exit(app.exec_())

关于python - 如何将光标放在 QTableWidget 单元格的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60068199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com