QT对话框实现
2016-06-30 17:59
447 查看
模态对话框的实现:
1、效果:
![](http://img.blog.csdn.net/20160630175211971)
2、头文件modedialog.h:
3、实现modedialog.cpp:
4、使用代码:
5、部分说明:
关于信号与槽的连接,参数只需要类型,不要参数名,ok和cancel这些button以点击为信号发出clicked()。
1、效果:
2、头文件modedialog.h:
#ifndef MODEDIALOG_H #define MODEDIALOG_H #include <QRadioButton> #include <QLabel> #include <QDialog> #include <QButtonGroup> #include <QPushButton> class ModeDialog:public QDialog { Q_OBJECT public: ModeDialog(QWidget *parent=0); int getMode() { return mode; } void initMode(int id); private slots: void setMode(int id); private: int mode; QLabel *labelDialog; QRadioButton *ownModeRb; QRadioButton *qtModeRb; QButtonGroup *modeGroup; QPushButton *okButton; QPushButton *cancelButton; }; #endif // MODEDIALOG_H
3、实现modedialog.cpp:
#include "modedialog.h" #include <QHBoxLayout> #include <QVBoxLayout> ModeDialog::ModeDialog(QWidget *parent) :QDialog(parent) { labelDialog=new QLabel(tr("set Mode")); ownModeRb=new QRadioButton(tr("&Own Mode")); qtModeRb=new QRadioButton(tr("&Qt Mode")); modeGroup=new QButtonGroup(this); modeGroup->addButton(ownModeRb,0); modeGroup->addButton(qtModeRb,1); qtModeRb->setChecked(true); okButton=new QPushButton(tr("OK")); cancelButton=new QPushButton(tr("CANCEL")); //添加信号连接 connect(modeGroup,SIGNAL(buttonClicked(int)),this,SLOT(setMode(int))); connect(okButton,SIGNAL(clicked()),this,SLOT(accept())); connect(cancelButton,SIGNAL(clicked()),this,SLOT(reject())); QHBoxLayout *topLayout=new QHBoxLayout; topLayout->addWidget(labelDialog); topLayout->addWidget(ownModeRb); topLayout->addWidget(qtModeRb); QHBoxLayout *downLayout=new QHBoxLayout; downLayout->addWidget(okButton); downLayout->addStretch(); downLayout->addWidget(cancelButton); QVBoxLayout *mainLayout=new QVBoxLayout; mainLayout->addLayout(topLayout); mainLayout->addLayout(downLayout); setLayout(mainLayout); mode=1; } void ModeDialog::setMode(int id) { mode=id; } void ModeDialog::initMode(int id) { if(id==0) { ownModeRb->setChecked(true); } else { qtModeRb->setChecked(true); } }
4、使用代码:
modeDialog=new ModeDialog(this); modeDialog->initMode(m_dib->getMode()); if(modeDialog->exec()) { m_dib->setMode(modeDialog->getMode()); } delete modeDialog;
5、部分说明:
关于信号与槽的连接,参数只需要类型,不要参数名,ok和cancel这些button以点击为信号发出clicked()。
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- MooBox 基于Mootools的对话框插件
- 基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
- C#实现在前端网页弹出警告对话框(alert)的方法
- Android开发必知 九种对话框的实现方法
- Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码
- Android列表对话框用法实例分析
- C#使用Word中的内置对话框实例
- MFC对话框中添加状态栏的方法
- jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
- 基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
- JavaScript弹出对话框的三种方式
- 用JavaScript实现对话框的教程
- Asp.net 弹出对话框基类(输出alet警告框)
- js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
- boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
- 自制轻量级仿jQuery.boxy对话框插件代码
- jQuery代码实现对话框右上角菜单带关闭×