Qt之对话框设计——可扩展对话框
2012-11-17 20:52
429 查看
利用setSizeConstraint(QLayout::SetFixedSize)方法使对话框尺寸保持相对固定(有控件决定),不能经过拖动改变大小。
extension.h
#ifndef EXTENSION_H #define EXTENSION_H #include <QtGui/QDialog> #include <QWidget> class Extension : public QDialog { Q_OBJECT public: Extension(QWidget *parent = 0, Qt::WFlags flags = 0); ~Extension(); void createBaseInfo(); void createDetaiInfo(); private: QWidget *baseWidget; QWidget *detaiWidget; public slots: void sl_Extension(); }; #endif // EXTENSION_H
extension.cpp
#include "extension.h" #include <QVBoxLayout> #include <QGridLayout> #include <QLabel> #include <QLineEdit> #include <QComboBox> #include <QPushButton> Extension::Extension(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) { setWindowTitle(tr("Extension Dialog")); createBaseInfo(); createDetaiInfo(); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->addWidget(baseWidget); mainLayout->addWidget(detaiWidget); mainLayout->setSpacing(10); mainLayout->setSizeConstraint(QLayout::SetFixedSize); } Extension::~Extension() { } void Extension::createBaseInfo() { baseWidget = new QWidget; QLabel *labName = new QLabel(tr("Name:")); QLabel *labSex = new QLabel(tr("Sex:")); QLineEdit *edtName = new QLineEdit; QComboBox *cbbSex = new QComboBox; cbbSex->insertItem(0,tr("male")); cbbSex->insertItem(1,tr("female")); QPushButton *btnOk = new QPushButton(tr("Ok")); QPushButton *btnDetai = new QPushButton(tr("Detai")); connect(btnDetai,SIGNAL(clicked()),this,SLOT(sl_Extension())); QGridLayout *baseLayout = new QGridLayout(baseWidget); baseLayout->addWidget(labName,0,0); baseLayout->addWidget(edtName,0,1); baseLayout->addWidget(btnOk,0,2); baseLayout->addWidget(labSex,1,0); baseLayout->addWidget(cbbSex,1,1); baseLayout->addWidget(btnDetai,1,2); baseLayout->setMargin(10); baseLayout->setSpacing(10); } void Extension::createDetaiInfo() { detaiWidget = new QWidget; QLabel *labAge = new QLabel(tr("Age:")); QLabel *labDepartment = new QLabel(tr("Department:")); QLabel *labEmail = new QLabel(tr("Email:")); QLineEdit *edtAge = new QLineEdit; QComboBox *cbbDepartment = new QComboBox; cbbDepartment->insertItem(0,tr("Department 1")); cbbDepartment->insertItem(1,tr("Department 2")); cbbDepartment->insertItem(2,tr("Department 3")); QLineEdit *edtEmail = new QLineEdit; QGridLayout *detaiLayout = new QGridLayout(detaiWidget); detaiLayout->addWidget(labAge,0,0); detaiLayout->addWidget(labDepartment,1,0); detaiLayout->addWidget(labEmail,2,0); detaiLayout->addWidget(edtAge,0,1); detaiLayout->addWidget(cbbDepartment,1,1); detaiLayout->addWidget(edtEmail,2,1); detaiLayout->setMargin(10); detaiLayout->setSpacing(10); detaiWidget->hide(); } void Extension::sl_Extension() { if (detaiWidget->isHidden()) { detaiWidget->show(); } else { detaiWidget->hide(); } }
相关文章推荐
- Qt之对话框设计——电子时钟
- QT -- 快速设计对话框1
- Qt——消息对话框的设计
- Qt下等待对话框的设计
- QT -- 快速设计对话框2
- QT设计UI:QT模式对话框打开文件
- Qt:快速设计对话框. C++ GUI
- Qt之对话框设计——电子时钟
- [Qt起航]第三篇——(二)对话框的设计
- python3+PyQt5+Qt Designer实现扩展对话框
- Qt 可扩展对话框创建--实验
- Qt之对话框设计——利用QPalette改变控件颜色
- qt学习之扩展对话框
- QT学习 第一章:基本对话框--利用Qt Designer设计一个对话框
- Qt之对话框设计——淡入淡出效果
- Qt之对话框设计——程序启动界面
- QT_系列_002[动态扩展对话框]
- Qt5之扩展对话框与在QLabel中显示中文的办法
- Qt之对话框设计——利用QPalette改变控件颜色
- QT对话框设计——利用QPalette改变控件颜色