标签: qtableview

在 PyQt 中强制更新 QTableView + QSqlTableModel

我有一个 QTableView,它显示来自 QSqlTableModel 的数据。我希望我的模型在用户点击“刷新”按钮时检查更改,但我找不到更新数据的方法。我在模型上尝试了 reset() 和 update() 方法,但没有任何结果。

是否可以从数据库“重新读取”​​并更新模型?如何?

python pyqt qtableview

1
推荐指数
1
解决办法
3139
查看次数

在 QTableView 上单击鼠标左键即可获取行和列?

我在一个QTableView. 现在我想跟踪用户按下鼠标左键一次的图像,我想跟踪它,因为我将在更大的窗口中准确地显示该图像。我怎样才能做到这一点?我的意思是如何获取用户按下鼠标左键一次的图像的行和列索引?

我在 QTableView 中看不到任何直接的clicked()信号,那么给我 QTableView 的行或列的工具是什么?

编辑:我想我还应该提到我曾经QStandardItemModelQTableView. 首先,我设置模型的行和列,然后在 a 中输入每个QImage类型项(我将其转换QImageQIconQStandardItem,然后将其放入QStandardItemQStandardItemModel一旦QStandardItemModel设置或填充,我将放入QTableView.

谢谢。

c++ qt qtableview

1
推荐指数
1
解决办法
1676
查看次数

如何在 PyQt4 中使用 setRowHeight 和 resizeRowToContents 调整行大小?

我在表格视图中正确调整行大小时遇到​​一个小问题。我有一个垂直标题,没有水平标题。我试过:

self.Popup.table.setModel(notesTableModel(datainput))
self.Popup.table.horizontalHeader().setVisible(False)
self.Popup.table.verticalHeader().setFixedWidth(200)
for n in xrange(self.Popup.table.model().columnCount()):
    self.Popup.table.setColumnWidth(n,150)
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但是当我尝试时:

 for n in xrange(self.Popup.table.model().rowCount()):
     self.Popup.table.setRowHeight(n,100)
Run Code Online (Sandbox Code Playgroud)

或者

for n in xrange(self.Popup.table.model().rowCount()):
     self.Popup.table.resizeRowToContents(n)
Run Code Online (Sandbox Code Playgroud)

即使文本超过单元格的长度,也不会调整行的大小。

如何强制行适合数据?

python resize qtableview pyqt4

1
推荐指数
1
解决办法
7701
查看次数

如何复制 - 将QStandardItemModel创建的QTableView粘贴到文本/ excel文件?

如何将QTableView的多个项目/值复制并粘贴到text/excel文件?

我的代码:

tab_table_view = QtGui.QWidget()
self.Tab.insertTab(0, tab_table_view, self.File_Name)
self.tableView = QtGui.QTableView(tab_table_view)
self.tableView.setGeometry(QtCore.QRect(0, 0, 721, 571))
self.model = QtGui.QStandardItemModel(self)
self.tableView.setSelectionMode(QAbstractItemView.ExtendedSelection
Run Code Online (Sandbox Code Playgroud)

这一行self.tableView.setSelectionMode(QAbstractItemView.ExtendedSelection有助于在QTableView中选择多个项目,但是当我执行CTRL+ C粘贴它时,只粘贴选择的最后一项或值?

我已经看过该行,self.tableView.setEditTriggers(QAbstractItemView.AllEditTriggers)但是这个只适用于表中的单个项目而忽略了扩展选择.

请帮助我,这是我第二次发布这个问题.现在,我想知道它是否可能?请让我知道任何人!

pyqt qtableview pyqt4 qstandarditemmodel qabstractitemview

1
推荐指数
1
解决办法
1647
查看次数

如何删除 QTableView 小部件中的多行?

我想通过按 QPushButton 来删除 QTableView 小部件中的行。该代码对于单行工作正常,但是,当我选择多行时,总是会遗漏一行。

这是我到目前为止所拥有的:

主界面

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Dialog</class>
 <widget class="QDialog" name="Dialog">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>350</width>
    <height>239</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Dialog</string>
  </property>
  <widget class="QWidget" name="formLayoutWidget">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>341</width>
     <height>231</height>
    </rect>
   </property>
   <layout class="QFormLayout" name="formLayout">
    <item row="0" column="1">
     <widget class="QPushButton" name="btnPopulate">
      <property name="text">
       <string>Populate Table</string>
      </property>
     </widget>
    </item>
    <item row="2" column="1">
     <widget class="QTableView" name="tableView">
      <property name="selectionBehavior">
       <enum>QAbstractItemView::SelectRows</enum>
      </property>
     </widget>
    </item>
    <item row="1" column="1">
     <widget class="QPushButton" name="btnDelete">
      <property name="text">
       <string>Delete Row(s)</string>
      </property> …
Run Code Online (Sandbox Code Playgroud)

python pyqt qtableview pyqt5

1
推荐指数
1
解决办法
4751
查看次数

QTableView 如何突出显示鼠标悬停的整行?

选择行为设置为选择行,但仅突出显示悬停的单元格。有没有办法突出显示整行?

c++ user-interface qt qtableview

0
推荐指数
1
解决办法
2612
查看次数

QTableView由模型驱动时如何刷新

下面的代码创建QTableViewself.myModel( QAbstractTableModel) 驱动。“显示全部”self.checkBox链接到self.myModel.cbChanged()方法。

在此输入图像描述

问题:如何修改此代码,以便在选中复选框后立即刷新“QTableView”?

目标:当选中该复选框时,我们希望显示奇数编号的项目。以及要隐藏的偶数项。当复选框关闭(未选中)时,我们希望显示偶数编号的项目。所有奇数编号的项目都被隐藏。

import sys, os
from PyQt4 import QtCore, QtGui
app=QtGui.QApplication(sys.argv)

class TableModel(QtCore.QAbstractTableModel):
    def __init__(self):
        QtCore.QAbstractTableModel.__init__(self)      

        self.items=['One','Two','Three','Four','Five','Six','Seven']
        self.cb_status=True

    def rowCount(self, parent=QtCore.QModelIndex()):   
        return len(self.items)
    def columnCount(self, index=QtCore.QModelIndex()):
        return 1

    def data(self, index, role):
        if not index.isValid() or not (0<=index.row()<len(self.items)):
            return QtCore.QVariant()

        item=str(self.items[index.row()])

        if role==QtCore.Qt.DisplayRole and self.cb_status:
            return item
        else:
            return QtCore.QVariant()

    def cbChanged(self, arg=None):
        self.cb_status=arg  

class Window(QtGui.QWidget):
    def __init__(self):
        super(Window, self).__init__()
        mainLayout=QtGui.QHBoxLayout()
        self.setLayout(mainLayout)   

        self.viewA=QtGui.QTableView()
        self.viewA.horizontalHeader().setResizeMode(QtGui.QHeaderView.Stretch) 

        self.myModel=TableModel()
        self.viewA.setModel(self.myModel)

        self.checkBox=QtGui.QCheckBox("Show All") …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qtableview pyside

0
推荐指数
1
解决办法
7437
查看次数

删除 QTableView 的垂直网格线

我有一个QTableView如下图所示:

在此处输入图片说明

我想从表格中删除所有垂直线。我试图将gridline-color属性设置为等效于background-color,但它删除了所有网格线。

我希望保持水平网格线,并删除垂直网格线。我怎样才能做到这一点?

qt qtableview qtstylesheets

0
推荐指数
1
解决办法
7212
查看次数

无法使用 QTableView/自定义表格模型设置标题数据

我在 Maya / PySide2 / Python 2.7

我无法使用自定义表模型设置标题数据。

我试过这个:

from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import Qt


class TableModel(QtCore.QAbstractTableModel):
    def __init__(self, data):
        super(TableModel, self).__init__()
        
        self.setHeaderData(0, Qt.Horizontal, "Driver")
        self.setHeaderData(1, Qt.Horizontal, "Range")
        self.setHeaderData(2, Qt.Horizontal, "Driven")
        self.setHeaderData(3, Qt.Horizontal, "Range")
        
        self._data = data

    def data(self, index, role):
        if role == Qt.DisplayRole:
            return self._data[index.row()][index.column()]

    def rowCount(self, index):
        return len(self._data)

    def columnCount(self, index):
        return 4
        
    def addRow(self, row):
        self._data.append(row)
        self.layoutChanged.emit()  

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        self.table = QtWidgets.QTableView()

        data = [
        [
            "firstData", …
Run Code Online (Sandbox Code Playgroud)

python maya qtableview pyside2

0
推荐指数
1
解决办法
3224
查看次数