• 5856阅读
  • 5回复

[提问]怎样让QLabel最小? [复制链接]

上一主题 下一主题
离线彩阳
 

只看楼主 倒序阅读 楼主  发表于: 2012-11-14
关键词: QT4问题界面
我想让这个界面QLabel以最小的形态显示。下面是我的代码:
  1. #include <QtGui>
  2. #include "DiagramViewApp.h"
  3. DiagramViewApp::DiagramViewApp( QWidget* parent )
  4.     :QMainWindow( parent )
  5. {
  6.     // 初始化各个控件
  7.     m_Status    = new QLabel( tr( "This is test label." ), this );
  8.     m_Tree      = new QTreeWidget( this );
  9.     m_Detail    = new QTextEdit( this );
  10.     m_View      = new QWidget( this );
  11.     // 名词解释:b0Item0:branch 第0层的项目第0号,依此类推
  12.     m_Tree->setHeaderLabel( tr( "Category" ) );
  13.     QTreeWidgetItem* rootItem = new QTreeWidgetItem;
  14.     QTreeWidgetItem* b0Item0 = new QTreeWidgetItem;
  15.     QTreeWidgetItem* b0Item1 = new QTreeWidgetItem;
  16.     QTreeWidgetItem* b0Item2 = new QTreeWidgetItem;
  17.     b0Item0->setText( 0, tr( "View 1" ) );
  18.     b0Item1->setText( 0, tr( "View 2" ) );
  19.     b0Item2->setText( 0, tr( "View 3" ) );
  20.     rootItem->setText( 0, tr( "Diagram Views" ) );
  21.     rootItem->addChild( b0Item0 );
  22.     rootItem->addChild( b0Item1 );
  23.     rootItem->addChild( b0Item2 );
  24.     m_Tree->addTopLevelItem( rootItem );
  25.     m_Status->setPalette( QPalette( QColor( 185, 235, 67 ) ) );
  26.     m_Status->setAutoFillBackground( true );
  27.     m_Status->setSizePolicy( QSizePolicy::Maximum,
  28.                              QSizePolicy::Maximum );
  29.     m_Status->adjustSize( );
  30.     // 设置布局
  31.     m_LeftSplitter      = new QSplitter( Qt::Vertical );
  32.     m_RightSplitter     = new QSplitter( Qt::Vertical );
  33.     m_MainSplitter      = new QSplitter( Qt::Horizontal );
  34.     m_LeftSplitter->addWidget( m_Tree );
  35.     m_LeftSplitter->addWidget( m_Detail );
  36.     m_RightSplitter->addWidget( m_View );
  37.     m_RightSplitter->addWidget( m_Status );
  38.     m_MainSplitter->addWidget( m_LeftSplitter );
  39.     m_MainSplitter->addWidget( m_RightSplitter );
  40.     setCentralWidget( m_MainSplitter );
  41.     setWindowTitle( tr( "Diagram View" ) );
  42. }
可是结果是这样的,没法出来。这是怎么回事呢?


上海Qt开发联盟,热忱地欢迎你的加入!
离线xht530

只看该作者 1楼 发表于: 2012-11-15
如果你想固定它的大小,可以用 setFixedSize,这肯定是没问题的。
或者也可以设置setMaximumSize(), 限制它最大的大小。
离线XChinux

只看该作者 2楼 发表于: 2012-11-15
布局里放个spacer进去啊。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线benbenmajia

只看该作者 3楼 发表于: 2012-11-15
同上。
安然.....
离线ltpgt
只看该作者 4楼 发表于: 2012-11-15
离线彩阳

只看该作者 5楼 发表于: 2012-11-16
回 1楼(xht530) 的帖子
谢谢你,我使用了
m_pStatus->setMaximumHeight( fontMetrics( ).height( ) );
就能达到效果了。
上海Qt开发联盟,热忱地欢迎你的加入!
快速回复
限100 字节
 
上一个 下一个