是否可以在溢出的 QTableWidgetItem 中首先显示字符串的右侧?
Posted
技术标签:
【中文标题】是否可以在溢出的 QTableWidgetItem 中首先显示字符串的右侧?【英文标题】:Is it possible to show the right side of a string first in an overfilled QTableWidgetItem? 【发布时间】:2020-04-01 20:54:26 【问题描述】:用户会收到一个文件对话框提示并选择一个完整路径,然后将其放入父 QTableWidget 内的 QTableWidgetItem 单元格中。目前,当item中有文字溢出以及可以显示的内容时,会先显示左边部分。
如果完整路径是 C:\Users\JohnDoe\Example_File1.txt,它将显示: C:\Users\JohnDoe\Ex...
我希望用户能够在溢出截止发生之前首先看到正确的部分(文件基名),以便它将读取:
...Doe\Example_File1.txt
我尝试实现以下代码,它改变了对齐方式,但似乎没有像上面描述的那样工作:
obj = self.QTable1 #A 10x3 table
for x in range(obj.rowCount()):
item = obj.item(x,2) #Change alignment for 3rd column (Where paths are stored)
item.setTextAlignment( QtCore.Qt.AlignRight)
【问题讨论】:
【参考方案1】:你必须 textElideMode
到 Qt.ElideLeft 并禁用 wordWrap
:
self.QTable1.setTextElideMode(QtCore.Qt.ElideLeft)
self.QTable1.setWordWrap(False)
【讨论】:
感谢您提供的信息,但这最终不适用于我的路径列。我实际上找到了一种更简单的方法,称为 .setTextElideMode(QtCore.Qt.ElideLeft) 似乎适用于非路径列。经过调查,当字符串是路径时,elide 似乎失败了。它以某种方式检测到斜线并恢复为Elide Right。我不确定如何禁用它。以上是关于是否可以在溢出的 QTableWidgetItem 中首先显示字符串的右侧?的主要内容,如果未能解决你的问题,请参考以下文章
在 QTableWidgetItem 中设置 mousePressEvent 处理程序