标签: qtablewidget

在 Python 中使用 PyQt 将数据从 sqlite 数据库插入到 QTableWidget

我想将存储在 sqlite 表中的数据插入到QTableWidget. 我使用两个for循环来查找数据和索引。每次迭代后,我在控制台中打印数据,它没问题,但是当它显示表格小部件时,只有第一行和最后一行填充了数据。有什么想法可以解决这个问题吗?

很明显,这tblTable是一个QTableWidget

这是代码的这一部分:

cursor.execute('''SELECT * FROM MyTable''')
for index , form in enumerate(cursor.fetchall()):
    i = 0
    for item in form:
        print(str(item))
        self.tblTable.setItem(index, i, QtGui.QTableWidgetItem(str(item)))       
        i = i + 1
    self.tblTable.insertRow(1)
Run Code Online (Sandbox Code Playgroud)

python sqlite pyqt qtablewidget

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

QTableWidget::item() QTableWidget::cellWidget()?

有谁知道返回值之间的关系

QTableWidget::item(x, y) 
Run Code Online (Sandbox Code Playgroud)

 QTableWidget::cellWidget (x, y)
Run Code Online (Sandbox Code Playgroud)

在同一个 QTableWidget 和同一个 row.column 中。?

user-interface qt widget qtablewidget

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

Qt模型/视图与标准小部件

我目前正在阅读Qt的模型/视图教程,但我仍然不确定是否应该为我的Qt程序使用模型/视图或小部件:

我需要做一个记录器应用程序,它将监视模拟环境中的所有信息.基本情景可能是:

  1. 用户1虚拟实体B说了些什么 (记录器应用程序获取用户1所说的内容并在表视图或列表视图中显示)
  2. 虚拟实体B回复用户1的内容(记录器应用程序获取用户1所说的内容并将其添加到表视图或列表视图中)

等等

此记录器应用程序的需求是实时获取此信息,并且收集的数据将不可编辑.从本质上讲,这只是为了显示日志.

那么,使用模态/视图或小部件是否值得我想做什么?

谢谢

qt qtreewidget qtableview qtablewidget qtreeview

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

QTableWidget 中的自定义排序

我有一个 QTableWidget,我通过标题列使用它的默认排序功能,但 QTableWidget 中的一列是整数类型,并且通过 QTableWidget 默认排序,它像字符串一样排序。所以有任何方法可以使用我自己的方法QTableWidget 的排序功能?

qt qtablewidget

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

QTableWidget 强制选择单个项目

在 PyQt 中,如何强制 aQTableWidget仅接受单个部分(以便您无法使用Shift或选择更多项目crtl)?

python pyqt qtgui qtablewidget pyside

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

在 QTableWidget 中使用 setCellWidget 对列进行排序

我正在尝试对包含进度条的列进行排序。我希望列按进度条值排序。任何帮助都感激不尽 在此处输入图片说明

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys


class Example(QMainWindow):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        self.tablew = Table(self)
        self.setCentralWidget(self.tablew)

        self.setGeometry(300, 300, 300, 200)
        self.show()


class ProgressBar(QProgressBar):

    def __init__(self, value, parent=None):
        QProgressBar.__init__(self)
        self.setMinimum(1)
        self.setMaximum(5.0)
        self.setValue(value)
        self.setFormat('{0:.5f}'.format(value))
        style = ''' QProgressBar{max-height: 15px;text-align: center;}'''
        self.setStyleSheet(style)


class Table(QTableWidget):

    def __init__(self,   parent=None):
        QTableWidget.__init__(self)
        self.setColumnCount(2)
        self.setHorizontalHeaderLabels(['id', 'status'])
        header = self.horizontalHeader()
        header.setResizeMode(QHeaderView.Stretch)
        self.setSortingEnabled(True)
        self.loadData()
        #

    def loadData(self):
        #
        tableData = [[89, 4.8], [99, 3.9], [101, 2.6], [105, 4]]
        #
        self.setRowCount(len(tableData))
        #
        for …
Run Code Online (Sandbox Code Playgroud)

sorting pyqt pyqt4 qtablewidget python-2.7

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

如何在 QTableWidgetItem 中设置单元格边框和背景颜色?

我有一个QTableWidget3 列。其中 2 列中有一些文本,但其中一列是空的,我希望它具有背景颜色。另外我希望单元格有边框。

如果我做

int i = 0;
foreach (tableData el, data) {
    //setting the first cell

    ui->eventTable->setItem(i, 1, new QTableWidgetItem); 
    //ui->eventTable->item(i, 1)->setBackground(el.severityColor);
    //ui->eventTable->item(i, 1)->setBackgroundColor(el.severityColor);
    ui->eventTable->item(i, 1)->setData(
        Qt::BackgroundRole,
        QBrush(el.severityColor)
    );

    //setting the third cell

    ++i;

}
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作。

但是如果在这段代码之前我尝试添加一个边框

QString style(
    "QTableWidget::item {"
        "border: 1px solid white;"
    "}"
);
ui->eventTable->setStyleSheet(style);
Run Code Online (Sandbox Code Playgroud)

背景没有设置。

我尝试使用setBackground(), setBackgroundColor()(即使它已被弃用)并且setData()如代码所示,但结果是相同的。

我也尝试setShowGrid(true)插入上面的样式表,但没有显示边框。

您可以通过创建一个 1 行 1 列的表格并尝试设置单元格的背景,然后为边框添加样式表来重现这一点。

我错过了什么吗?我还应该尝试什么? 作为替代方案,我可以定位样式中的特定行/单元格,以便我可以构建一个满足我想要的样式表字符串吗?

编辑: 我可以使用其他样式QTableWidget::item并应用它们,问题是当我有边框时。我还尝试将边框样式写为:

border-width: 1px;
border-style: solid;
border-color: white; …
Run Code Online (Sandbox Code Playgroud)

qt qt4 qtablewidget qtablewidgetitem

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

如何从键盘为 QTableWidget 创建信号?

我有一张桌子,可以用左、右、上、下按钮在里面移动。现在我需要在某个单元格中创建一个 SIGNAL 并按下空格键。这个信号也应该带来那个单元格的坐标。我尝试使用 QTableWidget 的标准信号,但它不起作用。我该如何解决这个问题?

qt keypress signals-slots qtablewidget

3
推荐指数
2
解决办法
2602
查看次数

如何对 QTableWidget 列值进行排序?

在此处输入图片说明当我单击右侧的“Çiz”按钮时,我想使用 python 代码对特定列中的值进行排序。但是,如果数字是双倍或更多,它会根据第一个元素进行排序。我意识到它接受字符串形式的值。我在网站上看了很多问题,没有答案。不想写脚本,排序肯定有办法,因为看起来好简单。

这是我从 Qt 5.10 开始的脚本,这里

这是我的脚本 - 我写了 0 用于根据第一列进行排序:

QTableWidget.sortItems(0, QtCore.Qt.AscendingOrder)
Run Code Online (Sandbox Code Playgroud)

但它接受值作为字符串而不是数字值。实际上,当用户单击标题时有一个脚本对值进行排序,但我不想让用户单击标题:

QTableWidget.setSortingEnabled(True)
Run Code Online (Sandbox Code Playgroud)

python pyqt qtablewidget pyqt5

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

调整自定义 QTableWidget 的大小(宽/高)

我需要一个QTableWidget基于 aQTabelModelQTableView在表格上方添加一些按钮。见下图:

在此处输入图片说明

QTableWidget应调整的宽度,使其不小于合理的最小值,并且不会超出其上方的按钮;特别是,第 1、2、4 列的大小应根据其内容进行调整,第 3 列Aberrations应扩大以填补右侧的空白。我想知道如何在代码中做到这一点。

以下是我用于自定义QTableWidget(PyQt5、Python3)的代码的最小示例:

from PyQt5 import QtGui, QtCore, QtWidgets
import numpy as np

#-- Table Model
class MyTableModel(QtCore.QAbstractTableModel):

    def __init__(self, data, parent=None, *args):
        super(MyTableModel, self).__init__(parent)

        # table data
        self.table_data = data
        self.rows_nr, self.columns_nr = data.shape

        # vertical & horizontal header labels
        self.hheaders = ["Head-{}".format(i) for i in range(self.columns_nr)]
        self.vheaders = ["Row-{}".format(i) for i in range(self.rows_nr)]

    # nr of rows
    def rowCount(self, parent):
        return self.rows_nr …
Run Code Online (Sandbox Code Playgroud)

resize pyqt qtablewidget qt5

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