Qt4读书笔记8
来源:互联网 发布:json.parseobject 编辑:程序博客网 时间:2024/05/20 00:38
Qt4读书笔记8
2009-2-2
形状变化的对话框(Shape-ChangingDialogs)
有时需要提供形状变化的对话框。两种重要的变形对话框是extension dialogs和multi-page dialogs. Qt都可以很好的支持。
extension dialog通常有一个简单的界面,但有一个开关按钮,用户通过这个按钮可以在简单界面和扩展界面间切换。extension dialogs通常用于迎合熟悉的用户和偶尔使用的用户。当用户不需要时隐藏一些细节选项。我们的例子:
简单界面:
-----------------------------------
sort ? - X
--Primary Key----------- --------
| | | OK |
| Column: -下拉框- | --------
| Order: -下拉框- | --------
| | | Cancel|
------------------------ --------
--------
| More |
-----------------------------------
点击More会出现复杂界面:
-----------------------------------
sort ? - X
--Primary Key----------- --------
| | | OK |
| Column: -下拉框- | --------
| Order: -下拉框- | --------
| | | Cancel|
------------------------ --------
--------
| More |
--------
--Secondary Key--------- |
| | |
| Column: -下拉框- | |
| Order: -下拉框- | |
| | |
------------------------ |
|
--Tertiary Key---------- |
| | |
| Column: -下拉框- | |
| Order: -下拉框- | |
| | |
------------------------ |
------------------------------------
用Qt Designer创建这个对话框,先创建简单的,再复制一份添加第二、第三keys界面。
Qt Designer运行我们建立组件间的连接,点击Edit|Edit Signals/Slots 进入Designer的connection mode. 建立More按钮与secondaryGroupBox,tertiayGroupBox之间的连接。
相关代码:
sortdialog.h
#ifndef SORTDIALOG_H
#define SORTDIALOG_H
#include <QDialog>
#include "ui_sortdialog.h"
class SortDialog : public QDialog, publicUi::SortDialog
{
Q_OBJECT
public:
SortDialog(QWidget*parent = 0);
voidsetColumnRange(QChar first, QChar last);
};
#endif
Sortdialog.cpp
#include <QtGui>
#include "sortdialog.h"
SortDialog::SortDialog(QWidget *parent) :QDialog(parent)
{
setupUi(this);
secondaryGroupBox->hide();
tertiaryGroupBox->hide();
layout()->setSizeConstraint(QLayout::SetFixedSize);
setColumnRange('A','Z');
}
void SortDialog::setColumnRange(QCharfirst, QChar last)
{
primaryColumnCombo->clear();
secondaryColumnCombo->clear();
tertiaryColumnCombo->clear();
secondaryColumnCombo->addItem(tr("None"));
tertiaryColumnCombo->addItem(tr("None"));
primaryColumnCombo->setMinimumSize(secondaryColumnCombo->sizeHint());
QCharch = first;
while(ch<= last)
{
primaryColumnCombo->addItem(QString(ch));
secondaryColumnCombo->addItem(QString(ch));
tertiaryColumnCombo->addItem(QString(ch));
ch= ch.unicode() + 1;
}
}
Main.cpp
#include <QApplication>
#include "sortdialog.h"
int main(int argc, char *argv[])
{
QApplicationapp(argc, argv);
SortDialog*dialog = new SortDialog;
dialog->setColumnRange('C','F');
dialog->show();
returnapp.exec();
}
- Qt4读书笔记8
- qt4读书笔记--layout mangement
- qt4读书笔记--event processing
- Qt4读书笔记1
- Qt4读书笔记2
- Qt4读书笔记3
- Qt4读书笔记4
- Qt4读书笔记5
- Qt4读书笔记6
- Qt4读书笔记7
- Qt4读书笔记9
- Qt4读书笔记10
- Qt4读书笔记11
- Qt4读书笔记12
- Qt4读书笔记13
- Qt4读书笔记14
- Qt4读书笔记15
- Qt4读书笔记5-make问题解决
- vc++常用数据类型转换
- 第一天
- (转)贴片电容封装尺寸
- 图元操作实例
- Save a video file with OpenCV
- Qt4读书笔记8
- 2009年经济增长"保八"无悬念 债券市场牛市趋弱
- Linux下一个网口绑定两个IP(同Windows下IP协议中高级选项的添加功能)
- 修改文件名
- 盘点我的2008 迎接我的2009迷茫中
- 代码编写注意点
- DHC log 2009-2-2
- nginx 加速网站
- 目标驱动的智能体行为[行为树]