是否可以在溢出的 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 无法 new

7.7.1 创建QTableWidgetItem表格

在 QTableWidgetItem 中设置 mousePressEvent 处理程序

如何从 QtableWidgetItem 创建字典?

QTableWidget,停止QTableWidgetItem的编辑

Pyqt5:QtableWidgetItem“无”