qt groupbox控件,qt中combox
Qt-messagebox收藏2010-05-05 10:10:35类别:Qt开发字体大小订阅
版权声明:允许转载原创作品。转载时请以超链接的形式注明原出处、作者信息及本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/217694
#include qmessagebox.h
Qt的标准对话框!这次,我们来谈谈QMessageBox和类似的对话框。实际上,我们已经使用了QMessageBox,只是在前面的程序中。然而,在那个时候,它被勾勒出来了。现在,我们来谈谈这些对话框。先来看看大家最熟悉的QMessageBox:information。我们在前面的代码中使用了这个:QMessagebox: information (null, title , content ,QMessagebox:yes QMessagebox:no,QMessagebox:yes);下面举个简单的例子:现在我们从API来看它的函数签名:staticstandardbutton qmessagebox:information(q widget * parent,constqstring title,constqstring text,StandardButtons,standard button default button=no button);首先,它是静态的,所以我们可以用类名直接访问它(看起来根本就是废话……);然后看它的一堆参数,第一个参数parent,解释它的父组件;第二个参数title是对话框的标题;第三个参数text是对话框中显示的内容;第四个参数buttons声明放置在对话框中的按钮。默认情况下,只放置一个“确定”按钮。该参数可以使用或操作。例如,如果我们希望有一个是和一个否按钮,我们可以使用QMessageBox:Yes QMessageBox:No。所有按钮类型都可以在QMessageBox;声明的StandarButton枚举中找到。第五个参数defaultButton是默认选中的按钮,默认值为NoButton,表示没有选中任何按钮。这么多参数,豆子都记不住!所以我们用QtCreator写的时候,输入QMessageBox:information之后就可以输入(了。稍等一下,QtCreator会帮我们在右上方显示函数签名,相当方便的函数!Qt提供了五个相似的界面来显示相似的窗口。这里就不介绍具体代码了,大家看看吧!QMessageBox:critical(NULL, critical , Content ,QMessageBox:Yes QMessageBox:No,QMessageBox:Yes);QMessageBox:warning(NULL, warning , Content ,QMessageBox:Yes QMessageBox:No,QMessageBox:Yes);QMessageBox:question(NULL, question , Content ,QMessageBox:Yes QMessageBox:No,QMessageBox:Yes);QMessageBox:about(NULL, about , About this application );请注意最后一个about()函数没有最后两个按钮about按钮设置!QMessageBox对话框的文本信息可以支持HTML标签。示例:qmessagebox: about (null, about , about this font color= red application/font );运行效果如下:如果我们想自定义图片,也很简单。此时,我们不能使用这些静态函数,但我们必须定义一个QMessagebox来使用:QMessagebox message(QMessagebox:no icon, title , content with icon。);
message . seticonpixmap(QPixmap( icon . png ));
message . exec();我们这里用的是exec()函数而不是show(),因为这是模态对话框,需要有自己的事件循环,否则我们的对话框会一闪而过(感谢laetitia提醒)。
需要注意的是,和其他程序一样,我们在程序中定义的相对路径是相对于运行时的地址的。exe文件。比如我们写 icon.png ,意思是在. exe的当前目录下找一个 icon.png 的文件,这个程序的运行效果如下:还有一点需要注意的是,我们用的是png格式的图片。因为Qt内置的图像处理格式是png,所以不会造成太大的麻烦。如果你想使用jpeg图像,Qt作为一个插件是受支持的。开发没有问题,但是如果要部署,需要注意这一点。最后说一下如何处理对话框的交互。当我们使用QMessageBox类时,有两种方式,一种是使用静态函数,另一种是使用构造函数。首先说一下静态函数的方式。注意,静态函数总是返回一个StandardButton,我们可以通过判断返回值来为用户做出相应的动作。QMessageBox:standard button Rb=QMessageBox:question(NULL, Show Qt ,是否要显示Qt对话框?,QMessageBox:Yes QMessageBox:No,QMessageBox:Yes);
if(rb==QMessageBox:Yes)
{
QMessageBox:aboutQt(NULL, About Qt );
}如果我们要使用构造函数,那么就要自己运行判断了:QMessagebox message(QMessagebox:no icon, show Qt ,要显示Qt对话框吗?,QMessageBox:Yes QMessageBox:No,NULL);
if(message . exec()==QMessageBox:Yes)
{
QMessageBox:aboutQt(NULL, About Qt );
}其实道理也差不多。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。