我有一个包含两个项目列表的列表,一个单词和一个数字.这个列表将使用tablewidget呈现.
我的目标是生成一个包含两列并且具有必要行的表,但是具有单词的列的标题应该大于数字列.
我可以使用resize列来调整内容,但是我希望在调整大小后桌子周围没有白色的空白空间.
为了创建gui代码,我正在使用QtDesigner.Thanks.
我需要减小第一列的大小(带有垂直标题的列)
如何在 PyQt4 中调整 QTableView 的垂直标题的大小?
我有非常大的标题和小的 GUI 块来显示此表,所以请帮助我!
我能够调整所有列的大小,但无法弄清楚调整垂直标题的大小?
我尝试了很多事情,例如:
self.tableView.setColumnWidth(0, 30) // only able to change the data columns in table not headers
self.tableView.verticalHeader().setResizeMode(QHeaderView.Interactive) //Able to change the height of headers but not width of them
Run Code Online (Sandbox Code Playgroud)
我想制作可由用户调整大小的标题,并且不依赖于项目的任何其他参数,如窗口大小、其他列的大小......
有人可以帮我弄这个吗?
我有一个QTreeView
子类(和QAbstractItemModel
子类),它有一个很好的水平标题。我想添加垂直标题(从左侧向下)以匹配。但与QTableView
具有单独的垂直 ( setVerticalHeader()
) 和水平标题 ( setHorizontalHeader()
) 不同的是,QTreeView
只允许单个标题 ( setHeader()
)。
我知道我可以假装最左边的列是标题并使用不同的背景颜色呈现它(我不需要调整行大小或重新排列行的能力,所以我不必实现任何这些特殊行为)。但这并没有考虑到当地的风格。例如,在我的系统上,标题具有轻微的渐变,使它们具有近乎 3D 的外观。
因此,我正在寻找一种方法来添加适当的垂直标题(我猜它是 的子类QHeaderView
),或者在最左侧的列中呈现标题,但以正确的方式呈现它。
我有一个QListView,里面有5个项目.在我的QListView中说(美国,加拿大,丹麦,埃及,芬兰).现在我想为所有这些项目设置一个公共标题作为COUNTRIES.如何将标题设置为QListView.请帮忙.
我想将水平标题合并(跨度)到QTableWidget
.
我有一个QTableView
隐藏的水平标题
table->horizontalHeader()->hide();
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,由于列宽,中间列中的文本被剪裁。
要查看文本,用户需要调整列的大小,但如果没有标题,我无法执行此操作。
我希望能够做的是将鼠标悬停在列的边缘上并显示正常的调整大小图标,然后允许用户将列拖得更宽。
这可能吗?
我尝试了 CSS 代码:
QTableView QHeaderView::section {
text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
它没有帮助我。
PS 我在使用 Qt 的 WinCC OA 中编写 SCADA 系统,在那里您可以仅使用 CSS 更改组件的外观
我可以使用以下命令向所有标题添加单个工具提示
tableview = QTableView()
tableview.horizontalHeader().setToolTip("headers")
Run Code Online (Sandbox Code Playgroud)
但是我可以向每个标题添加不同的工具提示,即我需要访问包含标题的QWidgets,例如(不起作用):
tableview.horizontalHeader().Item[0].setToolTip("header 0")
Run Code Online (Sandbox Code Playgroud) 当我单击QHeaderView的标题时,我想对QTableView进行排序。我在互联网上找到了几个这样的代码示例:在pyqt5中对QTableView进行排序, 但对我而言不起作用。我也看过Summerfield的Rapid Gui编程书,但我还是可以找到可行的方法。
在这个快速示例中,如何按名称或年龄对表格进行排序?
这是我的代码:
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import pandas as pd
import operator
# This class was generated from the Qt Creator
class Ui_tableView_ex(object):
def setupUi(self, tableView_ex):
tableView_ex.setObjectName("tableView_ex")
tableView_ex.resize(800, 600)
self.centralwidget = QWidget(tableView_ex)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.myTable = QTableView(self.centralwidget)
self.myTable.setObjectName("monTablo")
self.gridLayout.addWidget(self.myTable, 0, 0, 1, 1)
tableView_ex.setCentralWidget(self.centralwidget)
self.retranslateUi(tableView_ex)
QMetaObject.connectSlotsByName(tableView_ex)
def retranslateUi(self, tableView_ex):
_translate = QCoreApplication.translate
tableView_ex.setWindowTitle(_translate("tableView_ex", "MainWindow"))
class TableTest(QMainWindow, Ui_tableView_ex):
def __init__(self, parent=None):
super(TableTest, self).__init__(parent)
self.setupUi(self)
self.model = …
Run Code Online (Sandbox Code Playgroud) 我有一个 QTableWidget,最后一列包含可变长度的文本。
我想根据该部分的大小将 QHeaderView 的最后一部分拉伸或调整为其内容的大小。如果内容大小不超过小部件中的剩余空间,我想拉伸它(以防止小部件中出现丑陋、未填充的空间)。我可以通过使用setStretchLastSection(True)
. 但是,如果内容大小超过拉伸的列,则内容的最后部分将被剪切,因为该列未调整大小。QHeaderViewResizeToContents
为这种情况提供了ResizeMode,但在内容较短的情况下,这会使小部件具有未填充的空间。
我想过手动调整列大小。不幸的是,由于sectionSizeFromContents()
受保护,我无法直接访问内容大小。我想我可以继承 QHeaderView 并重新实现它,但我想知道是否有更好的解决方案。
qheaderview ×10
qt ×6
qtableview ×5
python ×4
pyqt ×3
pyqt5 ×2
qt4 ×2
qt5 ×2
qtablewidget ×2
resize ×2
c++ ×1
columnheader ×1
pyqt4 ×1
qlistview ×1
qtreeview ×1
sorting ×1
tooltip ×1