QT对话框实现
来源:互联网 发布:杨紫为什么土 知乎 编辑:程序博客网 时间:2024/06/05 10:17
模态对话框的实现:
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_OBJECTpublic: 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()。
0 0
- QT对话框实现
- Qt标准对话框实现
- Qt 实现可扩展对话框
- Qt 实现可扩展对话框
- 使用Qt设计师实现对话框
- 在Qt中实现一个对话框
- Qt 关于弹出对话框,实现居中显示!
- QT 使用QSS实现圆角对话框
- Qt实现用鼠标拖拽对话框
- Qt:可扩展对话框的实现
- python3+PyQt5+Qt Designer实现扩展对话框
- Qt QFileDialog实现文件选择对话框
- QT实现模式对话框(Model)
- qt学习之各种对话框的实现
- python3+PyQt5+Qt Designer实现扩展对话框
- 用Qt Creator实现Qt对话框上的菜单
- Qt对话框
- QT 对话框
- java8 lambda排序
- usb摄像头视频数据抓取初探
- 9-21网页尺寸offsetHeight
- KindEditor编辑器中的class自动过滤了
- 常见C/C++ XML解析器比较
- QT对话框实现
- 解决外网与内网或内网之间的通信,NAT穿透
- Android中View的事件体系(3)——自定义横向滚动viewGroup
- swift as as? as! ! ? 好牛(坑)逼(爹)的语法
- java 里面eaquls和==区别
- solr之字段数据类型
- spring-注解详解
- Apk插件化,基于Dynamic-load-apk进行的上层封装
- 【Leetcode】Sliding Window Maximum