博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt可扩展窗口实现
阅读量:7120 次
发布时间:2019-06-28

本文共 1478 字,大约阅读时间需要 4 分钟。

前言

有时候需要实现窗口可扩展,换句话说有一部分widget能够隐藏,显示,并且对话框大小可以随着widget变动而做出相应的变化;如图:

 

在点击CheckBox时,GroupBox_2能够显示,取消选中时,又恢复隐藏状态。如左图:

 

具体步骤:

1, 在designer中建立必须的几个widget,其中Groupbox我都设置sizePolicy为Fixed,限制了大小;

2, 在选择你的主窗口右击,设置Layout,你可以选择你想要的布局。其中1,2,5,6都可以选。然后再次右击进入如下窗口,选择Adjust Size,这样整体布局就设置好了。

3, 然后我们可以看到主对话框的属性编辑栏出现了红色的布局设置选项,设置layoutSizeConstraint的值为setFixedSize;

4, 难点和需要注意的部分已经结束了。然后是信号槽的编写,具体参看详细代码:

 

main.cpp#include "extensiondialog.h"#include 
int main(int argc, char *argv[]){ QApplication a(argc, argv); extensionDialog w; w.show(); return a.exec();}Extensiondialog.h#ifndef EXTENSIONDIALOG_H#define EXTENSIONDIALOG_H#include
#include "ui_extensiondialog.h"#include
class extensionDialog : public QDialog{ Q_OBJECTpublic: extensionDialog(QWidget *parent = 0, Qt::WFlags flags = 0); ~extensionDialog();private: Ui::extensionDialogClass ui; private slots: void Slot_checkBox();};#endif // EXTENSIONDIALOG_Hextensiondialog.cpp#include "extensiondialog.h"extensionDialog::extensionDialog(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags){ ui.setupUi(this); ui.groupBox_2->hide(); connect(ui.checkBox,SIGNAL(clicked()),this,SLOT(Slot_checkBox()));}void extensionDialog::Slot_checkBox(){ if(ui.checkBox->isChecked()) ui.groupBox_2->show(); else ui.groupBox_2->hide();}extensionDialog::~extensionDialog(){}

 

转载于:https://www.cnblogs.com/dalanjing/p/11095669.html

你可能感兴趣的文章
JS组件系列——Bootstrap文件上传组件:bootstrap fileinput
查看>>
awk学习笔记(11) - 与shell联用
查看>>
cxgrid打印
查看>>
iptables详解
查看>>
eclipse中将Maven Dependencies Libraries移除后的恢复办法
查看>>
mysql 插入-更新-删除
查看>>
C++语言笔记C11库
查看>>
systemd及启动流程
查看>>
java转换ppt,ppt转成图片,获取备注,获取文本
查看>>
lvs 负载均衡fullnat 模式clientip 怎样传递给 realserver
查看>>
python实现FTP服务器
查看>>
负载均衡7层nginx(提供软件包)
查看>>
python 数据类型学习
查看>>
Hello,World
查看>>
Linux的用户和组命令之groupmod
查看>>
在windows上秒开应用程序
查看>>
HTML快速入门4
查看>>
JQUERY中字符串和JSON的转换
查看>>
三句话告诉你 mapreduce 中MAP进程的数量怎么控制?
查看>>
wxWidgets第十六课 wxTimer没有调用stop导致崩溃的问题分析
查看>>