改变形状的对话框
就是类似于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 }
下面是实现的效果
展开前 展开后