1.

2. dialog.h 头文件

#ifndef DIALOG_H
#define DIALOG_H #include <QDialog> QT_BEGIN_NAMESPACE
class QLabel;
class QErrorMessage;
QT_END_NAMESPACE class Dialog : public QDialog
{
Q_OBJECT public: Dialog(QWidget *parent = 0); private slots: void getAge();
void getStature();
void getSex();
void getName();
void getColor();
void getFont(); void getCriticalMessage();
void getInformationMessage();
void getQuestionMessage();
void getWarningMessage();
void getErrorMessage(); private: QLabel *nameLabel;
QLabel *sexLabel;
QLabel *ageLabel;
QLabel *statureLabel; QLabel *colorLabel;
QLabel *fontLabel; QLabel *criticalLabel;
QLabel *informationLabel;
QLabel *questionLabel;
QLabel *warningLabel;
QLabel *errorLabel;
QErrorMessage *errorMessageDialog; }; #endif

3. dialog.cpp源文件

#include <QtGui>

#include "dialog.h"

#define MESSAGE \
Dialog::tr("<p>Message boxes have a caption, a text, " \
"and any number of buttons, each with standard or custom texts." \
"<p>Click a button to close the message box. Pressing the Esc button " \
"will activate the detected escape button (if any).") Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{ setWindowTitle(tr("Standard Dialogs"));
errorMessageDialog = new QErrorMessage(this); int frameStyle = QFrame::Sunken | QFrame::Panel; //Name
nameLabel = new QLabel;
nameLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
QPushButton *nameButton = new QPushButton(tr("&Name")); //Sex
sexLabel = new QLabel;
sexLabel->setFrameStyle(frameStyle);
QPushButton *sexButton = new QPushButton(tr("&Sex")); //Age
ageLabel = new QLabel;
ageLabel->setFrameStyle(frameStyle);
QPushButton *ageButton = new QPushButton(tr("&Age")); //Stature
statureLabel = new QLabel;
statureLabel->setFrameStyle(frameStyle);
QPushButton *statureButton = new QPushButton(tr("S&tature")); //Color
colorLabel = new QLabel;
colorLabel->setFrameStyle(frameStyle);
QPushButton *colorButton = new QPushButton(tr("&Color")); //Font
fontLabel = new QLabel;
fontLabel->setFrameStyle(frameStyle);
QPushButton *fontButton = new QPushButton(tr("&Font")); //Critical MessageBox
criticalLabel = new QLabel;
criticalLabel->setFrameStyle(frameStyle);
QPushButton *criticalButton =
new QPushButton(tr("Critica&l")); //Information MessageBox
informationLabel = new QLabel;
informationLabel->setFrameStyle(frameStyle);
QPushButton *informationButton =
new QPushButton(tr("&Information")); //Question MessageBox
questionLabel = new QLabel;
questionLabel->setFrameStyle(frameStyle);
QPushButton *questionButton =
new QPushButton(tr("&Question")); //Warning MessageBox
warningLabel = new QLabel;
warningLabel->setFrameStyle(frameStyle);
QPushButton *warningButton = new QPushButton(tr("&Warning")); //Error MessageBox
errorLabel = new QLabel;
errorLabel->setFrameStyle(frameStyle);
QPushButton *errorButton =
new QPushButton(tr("Show &Message")); connect(ageButton, SIGNAL(clicked()), this, SLOT(getAge()));
connect(statureButton, SIGNAL(clicked()), this, SLOT(getStature()));
connect(sexButton, SIGNAL(clicked()), this, SLOT(getSex()));
connect(nameButton, SIGNAL(clicked()), this, SLOT(getName()));
connect(colorButton, SIGNAL(clicked()), this, SLOT(getColor()));
connect(fontButton, SIGNAL(clicked()), this, SLOT(getFont())); connect(criticalButton, SIGNAL(clicked()), this, SLOT(getCriticalMessage()));
connect(informationButton, SIGNAL(clicked()),
this, SLOT(getInformationMessage()));
connect(questionButton, SIGNAL(clicked()), this, SLOT(getQuestionMessage()));
connect(warningButton, SIGNAL(clicked()), this, SLOT(getWarningMessage()));
connect(errorButton, SIGNAL(clicked()), this, SLOT(getErrorMessage())); //Setup Layout
QGridLayout *layout = new QGridLayout;
layout->setColumnStretch(1, 1);
layout->setColumnMinimumWidth(1, 250); layout->addWidget(nameButton, 0, 0);
layout->addWidget(nameLabel, 0, 1);
layout->addWidget(sexButton, 1, 0);
layout->addWidget(sexLabel, 1, 1);
layout->addWidget(ageButton, 3, 0);
layout->addWidget(ageLabel, 3, 1);
layout->addWidget(statureButton, 4, 0);
layout->addWidget(statureLabel, 4, 1); layout->addWidget(colorButton, 5, 0);
layout->addWidget(colorLabel, 5, 1);
layout->addWidget(fontButton, 6, 0);
layout->addWidget(fontLabel, 6, 1); layout->addWidget(criticalButton, 7, 0);
layout->addWidget(criticalLabel, 7, 1);
layout->addWidget(informationButton, 8, 0);
layout->addWidget(informationLabel, 8, 1);
layout->addWidget(questionButton, 9, 0);
layout->addWidget(questionLabel, 9, 1);
layout->addWidget(warningButton, 10, 0);
layout->addWidget(warningLabel, 10, 1);
layout->addWidget(errorButton, 11, 0);
layout->addWidget(errorLabel, 11, 1); setLayout(layout); } void Dialog::getAge()
{ bool ok;
int age = QInputDialog::getInteger(this,tr("User Age"),
tr("Please input age"),ageLabel->text().toInt(),0,150,1,&ok);
if(ok)
{
ageLabel->setText(QString(tr("%1")).arg(age));
}
} void Dialog::getStature()
{ bool ok;
double d = QInputDialog::getDouble(this,tr("Stature"),
tr("Please input stature"),6782.5,0,65536.00,1,&ok);
if(ok)
{
statureLabel->setText(QString(tr("%1")).arg(d));
}
} void Dialog::getSex()
{ QStringList items;
items << tr("male") << tr("female"); bool ok;
QString sex = QInputDialog::getItem(this,tr("Sex"),
tr("Please select sex"),items,0,false,&ok);
if (ok)
{
sexLabel->setText(sex);
}
} void Dialog::getName()
{ bool ok;
QString name = QInputDialog::getText(this,tr("User Name"),
tr("Please input new name"),QLineEdit::Normal,nameLabel->text(),&ok); if(ok && !name.isEmpty())
{
nameLabel->setText(name);
}
} void Dialog::getColor()
{
QColor color = QColorDialog::getColor(Qt::green, this); if (color.isValid())
{
colorLabel->setText(color.name());
colorLabel->setPalette(QPalette(color));
colorLabel->setAutoFillBackground(true);
}
} void Dialog::getFont()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, QFont(fontLabel->text()), this); if (ok)
{
fontLabel->setText(font.key());
fontLabel->setFont(font);
}
} void Dialog::getCriticalMessage()
{
QMessageBox::StandardButton reply;
reply = QMessageBox::critical(this, tr("QMessageBox::critical()"),
MESSAGE,
QMessageBox::Abort | QMessageBox::Retry | QMessageBox::Ignore); if (reply == QMessageBox::Abort)
{
criticalLabel->setText(tr("Abort"));
}
else if (reply == QMessageBox::Retry)
{
criticalLabel->setText(tr("Retry"));
}
else
{
criticalLabel->setText(tr("Ignore"));
}
} void Dialog::getInformationMessage()
{
QMessageBox::StandardButton reply;
reply = QMessageBox::information(this, tr("QMessageBox::information()"), MESSAGE); if (reply == QMessageBox::Ok)
{
informationLabel->setText(tr("OKOK"));
}
else
{
informationLabel->setText(tr("Escape"));
}
} void Dialog::getQuestionMessage()
{
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, tr("QMessageBox::question()"),
MESSAGE,
QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); if (reply == QMessageBox::Yes)
{
questionLabel->setText(tr("Yes"));
}
else if (reply == QMessageBox::No)
{
questionLabel->setText(tr("No"));
}
else
{
questionLabel->setText(tr("Cancel"));
}
} void Dialog::getWarningMessage()
{
QMessageBox msgBox(QMessageBox::Warning, tr("QMessageBox::warning()"),
MESSAGE, 0, this);
msgBox.addButton(tr("Save &Again"), QMessageBox::AcceptRole);
msgBox.addButton(tr("&Continue"), QMessageBox::RejectRole); if (msgBox.exec() == QMessageBox::AcceptRole)
{
warningLabel->setText(tr("Save Again"));
}
else
{
warningLabel->setText(tr("Continue"));
} } void Dialog::getErrorMessage()
{
errorMessageDialog->showMessage(
tr("This dialog shows and remembers error messages. "
"If the checkbox is checked (as it is by default), "
"the shown message will be shown again, "
"but if the user unchecks the box the message "
"will not appear again if QErrorMessage::showMessage() "
"is called with the same message.")); errorLabel->setText(tr("If the box is unchecked, the message "
"won't appear again."));
}

QT 创建对话框 Dialog 实例的更多相关文章

  1. EasyUI 动态创建对话框Dialog

    // 拒绝审批通过 function rejectApproval() { // 创建填写审批意见对话框 $("<div id='reject-comment'> </di ...

  2. 【Qt】2.3 使用Qt设计师来创建对话框

    安装完Qt OpenSource之后,在开始菜单目录下会有这几个东西. 其中[Designer]是用来设计窗口界面的程序.所以现在可以使用它来设计一个对话框.在[Qt Creator]中,[设计]这一 ...

  3. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  4. Android中制作自定义dialog对话框的实例

    http://www.jb51.net/article/83319.htm   这篇文章主要介绍了Android中制作自定义dialog对话框的实例分享,安卓自带的Dialog显然不够用,因而我们要继 ...

  5. QT创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束的简单示例

    QT创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束的简单示例 部分代码: // 创建模态对话框阻塞整个应用程序和非模态对话框唯一性约束 QMenu *pDialog = mBar->ad ...

  6. 【转】QT创建子对话框的方法

    原文地址:http://blog.csdn.net/baidu_18991997/article/details/42713159 代码实现功能:单击某个按钮后,弹出对话框,对话框中的内容可自行设计. ...

  7. Android对话框Dialog深度剖析

    对话框 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 对话框设计 Dialog 类是对话框的基类,但您应该避免直接实例化 Di ...

  8. QT模态对话框及非模态对话框

    QT模态对话框及非模态对话框 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对 ...

  9. Android 对话框(Dialog) 及 自己定义Dialog

    Activities提供了一种方便管理的创建.保存.回复的对话框机制,比如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...

随机推荐

  1. hoj 2543 (费用流 拆边)

    http://acm.hit.edu.cn/hoj/problem/view?id=2543 1.将原图中的每条边(u, v)拆成两条:(u, v, Ci, 0), (u, v, ∞, Ei) 2.购 ...

  2. js 时间戳转换为指定的日期格式

      function formatDate(date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFul ...

  3. linux磁盘清理

    一.背景: 1.由于linux系统空间是由挂载磁盘得来的,但有时装系统时挂载/根目录空间不大,现仅清除用户下载的大文件 二.方法: 1.输入命令df -h显示当前磁盘挂载(包含剩余空间)情况这里写图片 ...

  4. QThread与多线程(比较清楚)

    QThread类为我们提供了一种平台无关的管理线程的方式.一个QThread对象管理应用程序中的一个线程,该线程从run()函数开始执行.并且,默认情况下,我们可以在run()函数中通过调用QThre ...

  5. python基础:while循环,for循环

    ---恢复内容开始--- 1.使用while循环输出1 2 3 4 5 6     8 9 10 2.求1-100的所有数的和 3.输出 1-100 内的所有奇数 4.输出 1-100 内的所有偶数 ...

  6. 转:9个offer,12家公司,35场面试 从微软到谷歌,应届计算机毕业生的2012求职之路 !!!

    1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾. 首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头of ...

  7. nodejs的精简型和全栈型开发框架介绍

    总体来说你可以将Node.js开发框架归结为两类: - 精简型框架 - 全栈型框架 下面我们就对这两种框架进行探讨. 精简型框架 精简型框架提供的是最基本的功能和APIs,这类框架本身就是被设计成用来 ...

  8. Android 开发之:Intent.createChooser() 妙用

    大家对该功能第一印象就是ApiDemo 里面的 其只有区区几行代码  提取为: Intent intent = new Intent(Intent.ACTION_GET_CONTENT); inten ...

  9. 运维角度浅谈MySQL数据库优化

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

  10. hadoop01

    RPC:异步系统的调用,webservice是RPC的一种.webservice用于不在同一个公司的系统调用,同一个公司用socket调用.就是RPC. Dubbo淘宝的RPC框架. Hadoop r ...