Qt学习之路之自定义消息框
来源:互联网 发布:杭州淘宝大学培训机构 编辑:程序博客网 时间:2024/05/17 17:59
Qt自己也有很多的消息框,这时,如果这些消息框都不能满足开发的需求, Qt还允许自定义消息框。
包括消息框的图标, 按钮和消息框显示的内容都可以根据需求设定。不废话了,下面给出个简单的例子~~~
custmsg_widget.h
#ifndef CUSTMSGWIDGET_H#define CUSTMSGWIDGET_H#include <QDialog>#include <QPushButton>#include <QLabel>#include <QTextCodec>//---用于解决QT5下中文乱#include <QMessageBox>#include <QGridLayout>#include <QPixmap>#include <QFrame>class CusMsgWidget : public QDialog{Q_OBJECTpublic :explicit CusMsgWidget(QWidget *parent = 0);public slots:void slotShowCustomDlg();private:QPushButton *CustomBtn;QLabel *label;QGridLayout *mainLayout;//---网格布局};#endif//CUSTMSGWIDGET_H
custmsg_widget.cpp
#include "custmsg_widget.h"CusMsgWidget::CusMsgWidget(QWidget *parent /*= 0*/):QDialog(parent){//---窗口大小resize(200, 100);//-----------------------解决中文乱码QTextCodec *codec = QTextCodec::codecForName("GB18030");//----按钮 与 label 控件CustomBtn = new QPushButton(this);CustomBtn->setText(codec->toUnicode("点击我试试"));label = new QLabel(this);label->setFrameStyle(QFrame :: Panel | QFrame :: Sunken);//-----控件布局mainLayout = new QGridLayout(this);mainLayout->addWidget(CustomBtn, 0, 0);mainLayout->addWidget(label, 1, 0);//---设置事件关联代码connect(CustomBtn, SIGNAL(clicked()), this, SLOT(slotShowCustomDlg()));}//------------槽函数void CusMsgWidget::slotShowCustomDlg(){//-----------------------解决中文乱码QTextCodec *codec = QTextCodec::codecForName("GB18030");//--- label 显示内容QString labelStr = codec->toUnicode("自定义消息框");label->setText(labelStr);label->setText(codec->toUnicode("自定义消息框"));//-QMessageBox 设置标题QMessageBox customMsg;customMsg.setWindowTitle(codec->toUnicode("自定义消息框"));//----设定3个常规按钮QPushButton *yesBtn = customMsg.addButton(codec->toUnicode("是"), QMessageBox::ActionRole);QPushButton *noBtn = customMsg.addButton(codec->toUnicode("否"), QMessageBox::ActionRole);QPushButton *cancelBtn = customMsg.addButton(QMessageBox::Cancel);//---customMsg.setText(codec->toUnicode("这是一个用户自定义的消息框"));customMsg.setIconPixmap(QPixmap(":/1"));customMsg.exec();//-----点击消息框按钮事件处理//--是if (customMsg.clickedButton() == yesBtn){label->setText(codec->toUnicode("点击了自定义消息框的“是”按钮"));}//---否if (customMsg.clickedButton() == noBtn){label->setText(codec->toUnicode("点击了自定义消息框的“否”按钮"));}//---取消if (customMsg.clickedButton() == cancelBtn){label->setText(codec->toUnicode("点击了自定义消息框的“取消”按钮"));}return;}
0 0
- Qt学习之路之自定义消息框
- Qt学习之路之QMessageBox消息框
- Qt学习之路之自定义按钮
- c++学习之路---------------自定义消息
- Qt学习之路(23): 自定义事件
- Qt学习之路(23): 自定义事件
- Qt学习之路(48): 自定义委托
- Qt学习之路(23): 自定义事件
- Qt学习之路(48): 自定义委托
- Qt学习之路(23): 自定义事件
- Qt学习之路(23): 自定义事件
- Qt学习之路(48): 自定义委托
- Qt学习之路(23): 自定义事件
- QT 学习之路--自定义信号槽
- Qt学习之路(23): 自定义事件
- Qt学习之路(48): 自定义委托
- 《学习Qt之路2》笔记:QT自定义信号槽
- Qt学习之路(46): 自定义model之二
- eclipse tomcat 配置
- C++项目第一步
- Stage3D
- 数据加密-怎样确定RSA Key 的长度
- 病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写
- Qt学习之路之自定义消息框
- easyUI textbox 验证扩展
- 对时间12:00格式的比较 算出时间长度
- 经典题hdu 1722 Cake
- dataBase——链表查询
- 深入理解Android卷一中下载Android源代码详述
- win7下通过easyBCD引导安装Ubuntu14.04
- iOS 逆向之ARM汇编
- 在 Ubuntu 14.04 Server 上安装 Ganglia