Qt学习之路(18):Qt标准对话框之QInputDialog

这是Qt标准对话框的最后一部分。正如同其名字显示的一样,QInputDialog用于接收用户的输入。QInputDialog提供了一些简单的static函数,用于快速的建立一个对话框,正像QColorDialog提供了getColor函数一样。

首先来看看getText函数:

bool isOK;
QString text = QInputDialog::getText(NULL, "Input Dialog","Please input your comment", QLineEdit::Normal,"your comment",&isOK);
if(isOK) {
 QMessageBox::information(NULL, "Information",
 "Your comment is: <b>" + text + "</b>",
 QMessageBox::Yes | QMessageBox::No,
 QMessageBox::Yes);
}

代码比较简单,使用getText函数就可以弹出一个可供用户输入的对话框:

下面来看一下这个函数的签名:

static QString QInputDialog::getText ( QWidget * parent,
 const QString & title,
 const QString & label,
 QLineEdit::EchoMode mode = QLineEdit::Normal,
 const QString & text = QString(),
 bool * ok = 0,
 Qt::WindowFlags flags = 0 )

第一个参数parent,也就是那个熟悉的父组件的指针;第二个参数title就是对话框的标题;第三个参数label是在输入框上面的提示语句;第四个参数mode用于指明这个QLineEdit的输入模式,取值范围是QLineEdit::EchoMode,默认是Normal,也就是正常显示,你也可以声明为password,这样就是密码的输入显示了,具体请查阅API;第五个参数text是QLineEdit的默认字符串;第六个参数 ok是可选的,如果非NLL,则当用户按下对话框的OK按钮时,这个bool变量会被置为true,可以由这个去判断用户是按下的OK还是Cancel,从而获知这个text是不是有意义;第七个参数flags用于指定对话框的样式。

虽然参数很多,但是每个参数的含义都比较明显,大家只要参照API就可以知道了。

函数的返回值是QString,也就是用户在QLineEdit里面输入的内容。至于这个内容有没有意义,那就要看那个ok参数是不是true了。

QInputDialog不仅提供了获取字符串的函数,还有getInteger,getDouble,getItem三个类似的函数,这里就不一一介绍。

出处:http://devbean.blog.51cto.com/448512/219338

时间: 2024-11-18 12:42:50

Qt学习之路(18):Qt标准对话框之QInputDialog的相关文章

Qt学习之路(17):Qt标准对话框之QMessageBox

现在还是继续来说说Qt的标准对话框吧! 这次来说一下QMessageBox以及类似的几种对话框.其实,我们已经用过QMessageBox了,就在之前的几个程序中.不过,当时是大略的说了一下,现在专门来说说这几种对话框. 先来看一下最熟悉的QMessageBox::information.我们在以前的代码中这样使用过: QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMess

Qt学习之路(16):Qt标准对话框之QColorDialog

继续来说Qt的标准对话框,这次说说QColorDialog.这是Qt提供的颜色选择对话框. 使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色.我们还是使用前面的QAction来测试下这个函数: QColor color = QColorDialog::getColor(Qt::white, this); QString msg = QString("r: %1, g: %2, b:

Qt学习之路(15):Qt标准对话框之QFileDialog

下面还是按照我们的进度,从Qt的标准对话框开始说起.所谓标准对话框,其实就是Qt内置的一些对话框,比如文件选择.颜色选择等等.今天首先介绍一下QFileDialog. QFileDialog是Qt中用于文件打开和保存的对话框,相当于Swing里面的JFileChooser.下面打开我们前面使用的工程.我们已经很有先见之明的写好了一个打开的action,还记得前面的代码吗?当时,我们只是弹出了一个消息对话框(这也是一种标准对话框哦~)用于告知这个信号槽已经联通,现在我们要写真正的打开代码了! 修改

Qt学习之路(7):创建一个对话框(上)

首先说明一点,在C++ GUI Programming with Qt4, 2nd中,这一章连同以后的若干章一起,完成了一个比较完整的程序--一个模仿Excel的电子表格.不过这个程序挺大的,而且书中也没有给出完整的源代码,只是分段分段的--我不喜欢这个样子,我想要看到我写出来的是什么东西,这是最主要的,而不是慢慢的过上几章的内容才能看到自己的作品.所以,我打算换一种方式,每章只给出简单的知识,但是每章都能够运行出东西来.好了,扯完了,下面开始! 以前说的主要是一些基础知识,现在我们来真正做一个

Qt学习之路(8):创建一个对话框(下)

接着前一篇,下面是源代码部分: #include <QtGui> #include "finddialog.h" FindDialog::FindDialog(QWidget *parent) : QDialog(parent) { label = new QLabel(tr("Find &what:")); lineEdit = new QLineEdit; label->setBuddy(lineEdit); caseCheckBox

Qt 学习之路 2 --- 读书笔记

一.文章来由 来自豆子老师非常好的一本Qt教程,但是只有网络版,所以用这个做笔记了,不动笔墨不读书嘛~~ 二.读书笔记 1.Qt 学习之路 2(2):Qt 简介 1.1 关于 Qt 的一站式解决 Qt 是一个著名的 C++ 应用程序框架.但并不只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个"一站式"的解决方案:不再需要研究 STL,不再需要 C++ 的,不再需要到处去找解析 XML.连接数据库.访问网络的各种第三方库,因为

Qt学习之路(23):自定义事件

Qt允许你创建自己的事件类型,这在多线程的程序中尤其有用,当然,也可以用在单线程的程序中,作为一种对象间通讯的机制.那么,为什么我需要使用事件,而不是使用信号槽呢?主要原因是,事件的分发既可以是同步的,又可以是异步的,而函数的调用或者说是槽的回调总是同步的.事件的另外一个好处是,它可以使用过滤器. Qt中的自定义事件很简单,同其他类似的库的使用很相似,都是要继承一个类进行扩展.在Qt中,你需要继承的类是QEvent.注意,在Qt3中,你需要继承的类是QCustomEvent,不过这个类在Qt4中

Qt学习之路(19):事件(event)

前面说了几个标准对话框,下面不打算继续说明一些组件的使用,因为这些使用很难讲完,很多东西都是与实际应用相关的.实际应用的复杂性决定了我们根本不可能把所有组件的所有使用方法都说明白.这次来说说Qt相对高级一点的特性:事件. 事件(event)是有系统或者Qt本身在不同的时刻发出的.当用户按下鼠标,敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件.一些事件是在对用户操作做出响应的时候发出,如键盘事件等:另一些事件则是由系统自动发出,如计时器事件. 一般来说,使用Qt编程时,我们并不会把

Qt学习之路(2):Hello,world!

任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例--照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍. 或许有人总想知道,Qt这个单词是什么意思.其实,这并不是一个缩写词,仅仅是因为它的发明者,TrollTech公司的 CEO,Haarard Nord和Trolltech公司的总裁Eirik Chambe-Eng在联合发明Qt的时候并没有一个很好的名字.在这里,字母Q是Qt库中所有类的前缀--这仅仅是因为在Haarard的emacs的字体中,