我想亲自在表格中管理我的列的宽度,但是在从代码中调整它们的大小后,我无法想出一种方法来阻止用户手动调整它们的大小.我发现它QTableView有columnResized()插槽,我看到的唯一方法就是QTableWidget在timer事件中一次又一次地子类化或重新调整列的大小.
可能有更简单的方法吗?
无论如何在qtablewidget中添加像按钮一样?但是单元格中的日期必须显示,例如,如果用户双击一个单元格,我可以像按钮一样发送信号吗?谢谢!
edititem():
def editItem(self,clicked):
if clicked.row() == 0:
#go to tab1
if clicked.row() == 1:
#go to tab1
if clicked.row() == 2:
#go to tab1
if clicked.row() == 3:
#go to tab1
Run Code Online (Sandbox Code Playgroud)
表触发器:
self.table1.itemDoubleClicked.connect(self.editItem)
Run Code Online (Sandbox Code Playgroud) 我已经google了一下,但我无法找到问题的解决方案.
我有一个包含2列的QTableWidget,我想要做的是让它们对整个小部件可见,而不显示水平滚动条.
有了图片,它应该是清楚的:
我使用Qt Designer创建UI和一些代码来填充所有小部件和其他东西.
所以,首先我将th2 2列重新调整为内容:
self.statTable.resizeColumnToContents(0)
self.statTable.resizeColumnToContents(1)
Run Code Online (Sandbox Code Playgroud)
它工作,但然后Widget没有调整到2列宽度.
我有一个包含两个项目列表的列表,一个单词和一个数字.这个列表将使用tablewidget呈现.
我的目标是生成一个包含两列并且具有必要行的表,但是具有单词的列的标题应该大于数字列.
我可以使用resize列来调整内容,但是我希望在调整大小后桌子周围没有白色的空白空间.
为了创建gui代码,我正在使用QtDesigner.Thanks.
我是PyQt的新手,无论如何仍然有点困惑.我有这样的文本文件结构:
其中空格实际上是标签"\ t",当我读取此文件时,我希望填充QTable小部件.
我QTable部件有4列,分别为Name,Surname,Telephone,Email现在它已经没有行,但正如我从文件中读取行和制表分割每行我想添加一个新行,在每一列都包含什么是行.
有人能指出我如何解决这个问题,因为我找不到QTable Widget提供的解决方案或方法,可以让你这样做.
所以,我有一个QTableWidget,我想使用xlwt模块将其保存到.xls文件中...
这是代码:
def savefile(self):
filename = unicode(QtGui.QFileDialog.getSaveFileName(self, 'Save File', '', ".xls(*.xls)"))
wbk = xlwt.Workbook()
self.sheet = wbk.add_sheet("sheet")
self.row = 0
self.col = 0
self.add2(self.row, self.col)
wbk.save(filename)
def add2(self, row, col):
for i in range(self.tableWidget.columnCount()):
for x in range(self.tableWidget.rowCount()):
try:
teext = str(self.tableWidget.item(row, col).text())
self.sheet.write(row, col, teext)
row += 1
except AttributeError:
pass
col += 1
Run Code Online (Sandbox Code Playgroud)
但是,这只写出了来自单元格0,0的文本而没有别的......
我想我犯了一些严重错误......
更新:
def savefile(self):
filename = unicode(QtGui.QFileDialog.getSaveFileName(self, 'Save File', '', ".xls(*.xls)"))
wbk = xlwt.Workbook()
self.sheet = wbk.add_sheet("sheet", cell_overwrite_ok=True)
self.add2()
wbk.save(filename)
def add2(self):
row = …Run Code Online (Sandbox Code Playgroud) 如果我在Qt Designer中将horizontalHeaderVisible或verticalHeaderVisible属性设置为false,则可以正常工作.但是如何在代码中启用/禁用标头?我一直在尝试这样的事情:
self.ui.tblContents.horizontalHeaderVisible = False
Run Code Online (Sandbox Code Playgroud) 该QTableWdiget是神话般的简单的网格显示.更改颜色,字体等很简单.
但是,我没有设法使用更少的垂直空白给网格一个"更紧凑"的外观.我看到Qt文档谈论(例如这里)
围绕小部件,但是当我设置这些时,我只能在整个网格小部件而不是内部进行更改.
如何直接设置此(使用样式表或硬编码选项)以使QTableWidget显示更紧凑?
我是pyqt4的新手,我无法弄清楚如何做到这一点.我有一个包含数据的QtableWidget.我想改变tableWidget的单元格的一些背景颜色.
我试过self.tableWidget.item(3, 5).setBackground(QtGui.QColor(100,100,150)),它返回此错误:
AttributeError:'NoneType'对象没有属性'setBackground'
我该怎么办?
我目前正在开发一个在Qt Designer中设计的小部件.我在尝试向PyQT中的Qtable添加行的语法/整体概念时遇到问题.我还没有找到动态添加行的方法.任何的意见都将会有帮助.
问候
qtablewidget ×10
pyqt ×8
python ×8
qt ×3
pyqt4 ×2
autoresize ×1
header ×1
qheaderview ×1
qt4 ×1
resize ×1
xls ×1