标签: qtablewidget

将图像添加到PyQt中的QTableWidget

我是Python的新手,甚至更新于PyQt.我设法创建了一个表,但想在某些单元格中添加图像.我已经读过,我需要继承QTableWidget类,或者可能是QTableWidgetItem类,并重新实现QPaintEvent.如果有人有重新实现QPaintEvent的例子,我会非常感激.

谢谢,斯蒂芬

python pyqt qtablewidget qtablewidgetitem

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

编辑表时关闭PyQt事件循环

我正在使用PyQt开发GUI.GUI有一个qListWidget,一个qTableWidget和一个用Mayavi实现的图.列表指的是绘制的形状(例如圆柱和圆锥).当在列表中选择一个形状时,我希望将形状的属性加载到表中(从字典变量中)和要在图中突出显示的形状.我有Mayavi密谋工作正常.此外,如果编辑了表格,我需要重新绘制形状,以反映新的属性值(如圆柱体,如果半径已更改).

因此,当选择列表项时 - >使用项的属性(从字典变量)更新表,突出显示项目上的项目

编辑表时 - >更新字典变量并重新绘制项目

问题:当我选择一个列表项并将数据加载到表中时,每次更新单元格时都会触发qTableWidget ItemChanged信号,这会触发不完整数据重新绘制形状的次数.

在以编程方式更新表时,是否存在禁用GUI事件循环的典型方法?(我有使用Excel VBA的经验,在该上下文中设置Application.EnableEvents = False将阻止每次以编程方式更新单元格时触发WorksheetChange事件.)我是否应该有一个"表更新进行中"变量以防止在执行操作时采取操作表正在更新?有没有办法一次更新Table Widget而不是逐项更新?(我承认我现在故意避开模型 - 视图框架,因此qListWIdget和qTableWidget).

有什么建议?

我是第一次发布海报,但却是StackOverflow的长期用户,所以我只是想提前感谢这样一个非常棒的社区!

python pyqt pyqt4 qtablewidget

6
推荐指数
2
解决办法
8412
查看次数

Qt QTableWidget列调整大小

我有一个主窗口在QToolBar,QWidget的QTabWidget.布局是"网格".但是,我的窗口可以调整大小,因为我有一个布局,它运行良好.但是有一个问题,在我的QTabWidget中我有一个带有两列的QTableWidget(布局也是"Grid").如果我调整整个窗口的大小,QTableWidget会调整大小,但不会调整列.

例如,每当我调整窗口大小时,我的QTabWidget也会调整其大小和QTableWidget.只有我的QTableWidget中的列不会.

那么......如果我的QTableWidget调整大小,我怎么能调整它们的大小呢?

c++ qt qtablewidget

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

如何在QTableWidget中突出显示鼠标悬停的整行:Qt5

我想强调鼠标悬停在我的行上QTableWidget.

当我悬停鼠标时,只突出显示单个单元格.

我试过这种方法:

bool MyTabWidget::eventFilter(QObject *target, QEvent *event)
{
    if( target == ui->MyTableWidget )
    {
        //Just to print the event type
        qDebug() <<"EventType : "<<event->type();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出: EventType : 13.

`(13 = QEvent::Move)`
Run Code Online (Sandbox Code Playgroud)

我已经迷失了谷歌搜索.但没有得到任何适当的解决方案

有没有其他方法来满足我的要求(突出显示鼠标悬停的整行)?

请帮忙.预先感谢.

编辑:

请参考下面的屏幕截图更清晰.

在此输入图像描述

这是我QTableWidget 想要在鼠标悬停时更改红色边框(已编辑)行的背景颜色.

c++ hover mouseevent qtablewidget qt5

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

pyqt QTablewidget删除滚动条以显示完整表

我有一个可向其中动态添加QTableWidgets的滚动视图。但是,QTables本身也具有滚动条,因此不会显示完整表。有没有一种方法可以禁用滚动条,以便始终显示完整的表格?

在此处输入图片说明

编辑:我添加了

    self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
    self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
Run Code Online (Sandbox Code Playgroud)

按照建议。滚动条确实消失了,但是它仍然只显示部分表格(Ican可以在表格上悬停并使用鼠标滚轮进行滚动)。窗口小部件的代码如下

from PySide.QtGui import *
from PySide.QtCore import *

class MdTable(QTableWidget):
    def __init__(self, data, depth, *args):

        QTableWidget.__init__(self, *args)
        self.hheaders = ["c1", "c2", "c3", "c4"]
        self.depth = depth
        self.bids = data
        self.setData()

    def setData(self):

        self.setRowCount(self.depth)
        self.setColumnCount(5)

        for i in xrange(self.depth):
            if len(self.data) > i:
                d1= QTableWidgetItem(str(self.data[i][0]))
                d2= QTableWidgetItem(str(self.data[i][1]))
                self.setItem(i, 1, d1)
                self.setItem(i, 2, d2)

        self.setHorizontalHeaderLabels(self.hheaders)
        self.verticalHeader().setVisible(False)
        self.resizeRowsToContents()
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
Run Code Online (Sandbox Code Playgroud)

python pyqt qtablewidget pyside

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

PyQt:搜索项目QTableWidget并获取其坐标?

因此,我正在使用PythonPyQt,并创建了一个QTableWidget我用数据填充的。

有没有一种方法可以搜索特定的值,如果程序找到了某些东西,它可以返回coordinated(index)该项目的吗?

更新:
这是代码:

program2.py:

# -*- coding: utf-8 -*-
#imports:
import os
import platform
import sys
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import newchilddlg
from newchilddlg import *
from PyKDE4.kdeui import KDateComboBox
import xlrd
import xlwt


#version:
__version__ = "1.0.0"


#Main Window Class:
class MainWindow(QMainWindow):


    #__init__ function:
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)


        #Window size:
        self.resize(800,600)
        self.centralwidget = QtGui.QWidget(self)
        self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)


        #Table Widget:
        self.tableWidget …
Run Code Online (Sandbox Code Playgroud)

python search pyqt qtablewidget

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

Qt 表小部件。如何同时设置垂直标题和水平标题的含义/标题?

我知道如何将文本标签设置到行或列标题中。但我想做这样的事情:

https://i.stack.imgur.com/eMM6U.jpg

我没有找到任何有关如何在红色圆圈内进行操作的信息。我开始相信这不能用 QTableWidget 来完成。

谢谢 ;)

c++ qt qtablewidget

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

如何删除 QTabWidget 的“填充”?

我有QTabWidget一个QTableWidget内部的,如下面的例子:

在此处输入图片说明

但是它在QTabWidget(图中标记为红色)中有一个“padding”(至少我认为是padding )。

如何删除它或扩展 QTableWidget 以填充 QTabWidget 区域?

我正在使用 Qt 5.3。

c++ qt qtablewidget qtabwidget

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

pyqt - QTableWidget 标题单击以获取唯一列

我有一个QTableWidget带有水平标题的 5 列。单击第 4 列的标题时,我需要启动一个函数。目前,我有一个可行的解决方案,它包括为单击的每个标题调用此函数,然后解析索引并测试它是否是正确的列。

这是当前的代码:

self.table = QtGuiWidgets.QTableWidget()
self.table.horizontalHeader().sectionClicked.connect(self.onHeaderClicked)

def onHeaderClicked(self, logicalIndex):
    if logicalIndex == 4:
        print "ok"
Run Code Online (Sandbox Code Playgroud)

有没有办法避免在每次单击标题时调用此函数,而只是在单击右列标题时调用它?

pyqt qtablewidget

5
推荐指数
0
解决办法
1129
查看次数

如何防止 QTableview 中过于激进的文本删除?

我有一个问题,Qt 中的文本删除在表格中过于激进,请参见图片。 在此输入图像描述

带有完整数字0.8888的单元格......自从显示QTableWidget以来我已经进行了编辑,其他的与创建QTableWidget时一样。看起来 elide 是根据较小的宽度计算的,实际上也是如此。当小部件变得可见时,如何防止这种情况并立即删除正确的文本?

简化代码以重现:

QTableWidget *tableWidget;
tableWidget = new QTableWidget(Dialog);
tableWidget->setGeometry(QRect(40, 20, 256, 192));
tableWidget->setRowCount(4);
tableWidget->setColumnCount(1);
tableWidget->setItem(0, 0, new QTableWidgetItem("0.234823489789234"));
Run Code Online (Sandbox Code Playgroud)

和结果

在此输入图像描述

请注意,我想避免自己进行删除,因为用户可以编辑该值。自己进行删除意味着在编辑开始时(也许通过委托)放回真正的值。会很复杂。

c++ qt qtablewidget qtablewidgetitem qt5

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

标签 统计

qtablewidget ×10

c++ ×5

pyqt ×5

python ×4

qt ×4

qt5 ×2

qtablewidgetitem ×2

hover ×1

mouseevent ×1

pyqt4 ×1

pyside ×1

qtabwidget ×1

search ×1