2011-10-19 28 views
0

私はいくつかのQTableWidget(s)をお互いの中に再帰的に埋め込んでいます。最終的なGUIには4〜数千の正方形があります。ここでIは各正方形の最小サイズは5×5画素のようなものである必要が表示される必要があるので、多くの正方形(千)が存在するためだけ.:QTableWidgetの最小サイズをどのように変更しますか?

...

16個の正方形を示す一例のスクリーンショットです。

問題は、私がマウスを使用してできるだけ小さいウィンドウをサイズ調整してから、スクリーンショットで表示されたものに到達したことです。スクリーンショットは、各正方形の約18x18ピクセルです...スクリーン上に何千もの正方形に収まるほど小さくはありません。 何かが私のマウスを使用してより小さい正方形の大きさを妨げているのですか?

このスクリーンショットの四角形の最小サイズはどのように小さくすることができますか?

main.cppに:

#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(); 
} 

TableWidget.h:

class TableWidget : public QTableWidget 
{ 
    Q_OBJECT 
public: 
    TableWidget(int rows, int columns, QWidget *parent = 0); 
private: 
signals: 
public slots: 
}; 

TableWidget.cpp:

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); 
} 

UPDATE - 私は、レンダリングしようとした以下のコメントを1としてより多くの正方形とここで1024:私のWindowsXPのオン

enter image description here

+0

Windows OSには、最小ウィンドウサイズがあり、おおよそその幅があり、他のOSにも限界があると思います。私はそれがOSのようにウィジェットの制限ではないと思う。 10000ウィジェットでテストし、ウィンドウをできるだけ小さくするとどうなるかを見てください。 –

+0

256 +四角でテストし、各四角形の大きさを教えてください。 –

+0

@MooingDuckこれらは「ウィンドウ」ではありません。たくさんのQTableWidgets(実際にはTableWidgets)を持つQWidgetが1つあります。 QTableWidget - > QTableView - > QAbstractItemView - > QAbstractScrollArea - > QFrame - > QWidget - > QObjectとQPaintDevice'(私はより多くの四角形を試してみます) –

答えて

1

、私は148x96より低いほとんどのプログラムを縮小することはできません。あなたのウィジェットとはまったく関係ないかもしれません。

256+正方形でテストし、各正方形の大きさを教えてください。

Windows(およびそれが使用しているもの)は、ユーザーが上部のボトルトン、タイトルの数文字、スクロールバーのための十分なスペースを表示できるようにするためにこの制限があります。そして、ユーザーは3x2pxに収縮したプログラムを失うことはありません。

関連する問題