我正在使用QTableView和QSqlTableModel.在我看来,我不显示包含记录ID的列.如果未在任何列中显示,则如何获取所选行的ID?
感谢帮助 :)
要向模型添加新行,我正在调用beginInsertRows和endInsertRows().如何配置视图以滚动到新添加的行并选择它.我可以通过发送一些信号来做到这一点,但也许Qt有标准的方式.
我正在尝试在QTableView中实现类似Excel的行为,其中边框绘制在整个当前选择周围.我尝试了这种感觉就像一百种不同的方式,并不断遇到问题.我可以很容易地绘制边框,但只要选择更改,就会留下边框的残余.这是我在QTableView :: paintEvent中尝试过的一个例子......
void MyTableView::paintEvent(QPaintEvent* event)
{
// call QTableView's paint event first so we can draw over it
QTableView::paintEvent(event);
// activeSelection is a list of indexes that is updated in another function
// the function also calls QTableView::repaint whenever this list changes
// in an attempt to erase the previously drawn border
if(!activeSelection.size())
return;
QRect rect = visualRect(activeSelection.at(0)) |
visualRect(activeSelection.at(activeSelection.size() - 1));
// temporarily draw smaller border so it doesn't lie on the grid lines
rect.adjust(4, 4, -4, -4); …Run Code Online (Sandbox Code Playgroud) 我有一个QTableView,我需要从所选行的第一个单元格获取值(字符串)(可以选择行上的任何单元格).但是,只有在选择了一行时才需要此值.
我想 - 我需要得到所选行的索引,然后得到该行上第一个сell的值,但我找不到办法.
任何人都可以帮助我,如何将我的QtableView保存为 Excel 文件。我有一个QTableView和 一个 QPushButton(保存按钮)。如果我在我的 QtableView 中输入值并且如果我单击保存按钮 QTableView 项目应保存为 Excel 文件。请帮帮我。谢谢..
我在我的QTableView(作品)中使用拖放。但是,我没有看到任何下降指标。我应该看到一条应该插入水滴的线,不是吗?至少在这里他们是这么说的。
我的 init 非常标准。
// see model for implementing logic of drag
this->viewport()->setAcceptDrops(allowDrop);
this->setDragEnabled(allowDrag);
this->setDropIndicatorShown(true);
this->m_model->allowDrop(allowDrop);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我看不到指标。样式表与视图一起使用,这可能是原因。但是,我已禁用样式表,但仍然看不到它。
该视图使用整行进行选择,不确定这是否会导致问题。所以任何提示表示赞赏。
- 编辑 -
根据下面的评论,尝试了所有选择模式:单、多或扩展,没有视觉效果。还尝试了单元格而不是行选择,同样没有改进。
-- 编辑 2 --
目前正在评估另一个样式代理示例,类似于下面的,最初引用here
- 有关的 -
QTreeView 绘制下拉指示器
如何在 QTableWidget 中突出显示鼠标悬停的整行:Qt5
https://forum.qt.io/topic/12794/mousehover-entire-row-selection-in-qtableview/7
https://stackoverflow。 com/a/23111484/356726
我对 python 和使用都很陌生WinPython-32bit-2.7.10.3(包括QTDesigner 4.8.7。我正在尝试使用 QtableViews 编写一个接口,以便在两个独立的项目上使用 sqlite 数据库。
该算法大致如下:
\n- 连接到数据库并将数据转换为pandas.DataFrame
\n- 将 DataFrame 转换为 QAbstractTableModel
\n- 将 QAbstractTableModel 应用到tableview.model
\n- 加载对话框
我没有得到相同的行为,具体取决于用于创建数据帧的 sql:\n给定一个 SQL 表“参数”,具有 3 个字段(LIBELLE 作为 varchar,VALEUR 作为 varchar,TEST 作为布尔值),尝试的 sql 是:
\n\n通过第一个请求,我可以编辑表格视图内的数据。对于第二个请求,我可以选择一个“单元格”,对其进行编辑,但是当我提交版本(按 Enter 键)时,数据将设置回其第一个值。
\n\n在搜索时,我发现无论“任何”值是什么,setData 代码的这一行都不起作用:
\n\nself._data.values[index.row()][index.column()] = "anything"\nRun Code Online (Sandbox Code Playgroud)\n\n您可以通过删除主代码中第27行开头的#字符来测试sql源的发生率。
\n\n我已将代码截断到严格的最低限度(非常接近我的第一个项目的原始工作代码),并且我感到非常困惑。如果有人有想法,那就太好了!
\n\n谢谢
\n\nPS:我后来发布了代码,但我还没有找到加入的方法sqlite.db...如果有人可以指导我,我会很高兴添加它;与此同时,我已经在我的google.drive上加入了该地段的整个 …
我需要减小第一列的大小(带有垂直标题的列)
如何在 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)
我想制作可由用户调整大小的标题,并且不依赖于项目的任何其他参数,如窗口大小、其他列的大小......
有人可以帮我弄这个吗?
这里有张桌子:
tab=QTableView()
sti=QStandardItemModel(parent=None)
sti.appendRow([QStandardItem(str(1)),QStandardItem(str(2)),QStandardItem(str(3)),QStandardItem(str(4))])
tab.setModel(sti)
tab.setEditTriggers(QAbstractItemView.NoEditTriggers)
Run Code Online (Sandbox Code Playgroud)
有一个按钮:
btn=QPushButton('Press', self)
btn.clicked.connect(self.on_clicked)
btn.resize(btn.sizeHint())
Run Code Online (Sandbox Code Playgroud)
任务:如何在 QStandardItem(str(4)) 的表格单元格插入中插入按钮 btn?QTableWidget类有一个方法.setCellWidget(),但我是从QTableView继承的。如果我使用 QTableWidget 我将无法使用私有方法 .setModel()
在这个上搜索了一段时间,但我似乎找不到任何东西。在选择更改时需要 QTableView 的信号。尝试过,tbl_view.itemSelectionChanged.connect(self.select_row)但编译器抱怨这不存在。我还需要从所选行中检索数据。有人可以指出我正确的方向吗?
qtableview ×10
qt ×6
python ×4
c++ ×3
pyqt ×3
pyqt5 ×2
border ×1
excel ×1
model-view ×1
pandas ×1
pyqt4 ×1
python-2.7 ×1
python-3.x ×1
qheaderview ×1
qpushbutton ×1
qt4 ×1
qt4.7 ×1
qt5.6 ×1
qtsql ×1
qwidget ×1
resize ×1
row ×1