改变形状的对话框

    就是类似于QQ聊天窗口的那种对话框  , 点击就能伸缩侧边栏的那种 。 

    其实现的 思想 就是 通过 显示或 隐藏 一些 窗口部件 , 然后让程序自动判断窗口的 合适尺寸, 然后将窗口设置为合适尺寸 ,这样就能达到改变

    窗口形状的效果了

  如下的代码段实现了一个简单的更改窗口形状的  程序

 1 #include "sortdialog.h"
 2 #include<QLayout>
 3 SortDialog::SortDialog(QWidget *parent)
 4     :QDialog(parent)
 5 {
 6     setupUi(this);
 7   //程序初始化的时候先隐藏窗口部件
 8     groupBox_2->hide();
 9     groupBox_3->hide();
10   //然后将窗口设置为合适的尺寸
11     this->layout()->setSizeConstraint(QLayout::SetFixedSize);
12 }
13 
14 SortDialog::~SortDialog()
15 {
16 }
17 
18 void    SortDialog::on_okBtn_clicked()
19 {
20     this->setWindowTitle(tr("hahahahha"));
21     this->update();
22 }
23 
24 void    SortDialog::on_cancelBtn_clicked()
25 {
26     this->close();
27 }
28 //点击事件  槽函数
29 void    SortDialog::on_moreBtn_clicked()
30 {//该函数的功能就是当点击按钮的时候,会伸缩对话框
31     static    bool    flag = false;
32     groupBox_2->setHidden(flag);
33     groupBox_3->setHidden(flag);
34     flag = !flag;
35     layout()->setSizeConstraint(QLayout::SetFixedSize);
36 }

下面是实现的效果

展开前      展开后

posted on 2013-06-01 21:00  wowk  阅读(780)  评论(0编辑  收藏  举报