首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改QTableWidget的最小大小?

如何更改QTableWidget的最小大小?
EN

Stack Overflow用户
提问于 2011-10-19 20:16:52
回答 1查看 1.1K关注 0票数 0

我在彼此之间递归地嵌入一些QTableWidget(s)。最后的GUI将有4到几千个方块。下面是一个只显示16个方块的屏幕截图。

因为有那么多的方块(千)需要显示,所以我需要每个方格的最小大小大约是5x5像素。

问题是我用鼠标来尽可能小地调整窗口的大小.然后我就看到了你在截图上看到的!屏幕截图的每个方格大约是18x18像素..。它不足以容纳成千上万的方块在一个屏幕上。有什么东西阻止我用鼠标来调整方块的大小!

如何使这张截图中的方块有一个较小的最小尺寸?

main.cpp:

代码语言:javascript
复制
#include "TableWidget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    TableWidget *x1 = new TableWidget(2,2);
    for(int i = 0; i < x1->rowCount(); i++) {
        for(int j = 0; j < x1->columnCount(); j++) {
            x1->setCellWidget(i,j,new TableWidget(2,2));
        }
    }

    QGridLayout *layout = new QGridLayout;
    layout->addWidget(x1, 0, 0);

    QWidget *window = new QWidget;
    window->setLayout(layout);
    window->show();

    return a.exec();
}

表Widget.h:

代码语言:javascript
复制
class TableWidget : public QTableWidget
{
    Q_OBJECT
public:
    TableWidget(int rows, int columns, QWidget *parent = 0);
private:
signals:
public slots:
};

TableWidget.cpp:

代码语言:javascript
复制
TableWidget::TableWidget(int rows, int columns, QWidget *parent) :
    QTableWidget(rows,columns,parent)
{
    //------
    QTableWidget::horizontalHeader()->hide();
    QTableWidget::verticalHeader()->hide();
    //------
    QTableWidget::horizontalHeader()->setResizeMode(QHeaderView::Stretch);
    QTableWidget::verticalHeader()->setResizeMode(QHeaderView::Stretch);
    //------
    QTableWidget::setEditTriggers(QAbstractItemView::NoEditTriggers);
    //------
    QTableWidget::setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    QTableWidget::setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    //------
    QTableWidget::horizontalHeader()->setMinimumSectionSize(1);
    QTableWidget::verticalHeader()->setMinimumSectionSize(1);
    QTableWidget::horizontalHeader()->setDefaultSectionSize(1);
    QTableWidget::verticalHeader()->setDefaultSectionSize(1);
    // FIXME, the minimum size is not 1 pixel... it is like 10 pixels...
    //------
    QTableWidget::setSelectionMode(QAbstractItemView::NoSelection);
}

更新-根据下面的注释,我尝试呈现更多的方块,下面是1024:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-19 21:19:43

在我的WindowsXP上,我不能缩小大多数低于148x96的程序。它可能与您的小部件完全无关。

用256+正方形进行测试,告诉我们每个方块有多大。

Windows (以及您正在使用的任何内容)都有这样的限制,以确保用户能够看到顶部的bottons、标题的几个字母和足够的滚动条空间。这样用户就不会失去他们缩小到3x2px的程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7827582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档