行业网站特点,淄博网站优化服务,清远市最新消息,付费主题wordpress1 内置对话框
标准对话框样式 内置对话框基类
QColorDialog,
QErrorMessage
QFileDialog
QFontDialog
QInputDialog
QMessageBox
QProgressDialogQDialog Class帮助文档 示例#xff1a;各按钮激发对话框实现基类提供的各效果
第一步#xff1a;实现组件布局各按钮激发对话框实现基类提供的各效果
第一步实现组件布局 第二步实现信号与槽函数 文件静态成员方法 打印实现使用qdebug
代码
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QPushButton
#include QTextEdit#includeQColorDialog
#includeQErrorMessage
#includeQFileDialog
#includeQFontDialog
#includeQInputDialog
#includeQMessageBox
#includeQProgressDialog#include QDebugclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent 0);~Widget();
public slots:void setcolorf(){QColor c QColorDialog::getColor();te-setTextColor(c);}void showerr(){QErrorMessage *msg QErrorMessage::qtHandler();msg-showMessage(EEEEEEEE);}void getfile(){QString filename QFileDialog::getOpenFileName();qDebug()filename; //qt中打印方法te-setText(filename);}void setfont(){bool ok;QFont myfont QFontDialog::getFont(ok);if(ok)te-setFont(myfont);}void getstr(){QString str QInputDialog::getText(this, xxxx,yyyyy);te-setText(str);}void showmsg(){QMessageBox::information(this, vvvv, hello, AAA);}void showprogress(){QProgressDialog p;p.setValue(50);p.exec();}private:QPushButton *btcolor;QPushButton *bterrm;QPushButton *btfile;QPushButton *btfont;QPushButton *btinput;QPushButton *btmsg;QPushButton *btprg;QTextEdit *te;};#endif // WIDGET_H#include widget.h
#include QVBoxLayout
#include QHBoxLayoutWidget::Widget(QWidget *parent): QWidget(parent)
{btcolor new QPushButton(setcolor);bterrm new QPushButton(errmsg);btfile new QPushButton(getfile);btfont new QPushButton(setfont);btinput new QPushButton(getstr);btmsg new QPushButton(msg);btprg new QPushButton(progress);te new QTextEdit;QVBoxLayout *vbox new QVBoxLayout;vbox-addWidget(btcolor);vbox-addWidget(bterrm);vbox-addWidget(btfile);vbox-addWidget(btfont);vbox-addWidget(btinput);vbox-addWidget(btmsg);vbox-addWidget(btprg);QHBoxLayout *mainbox new QHBoxLayout;mainbox-addLayout(vbox);mainbox-addWidget(te);this-setLayout(mainbox);connect(btcolor, SIGNAL(clicked(bool)), this, SLOT(setcolorf()));connect(bterrm, SIGNAL(clicked(bool)), this, SLOT(showerr()));connect(btfile, SIGNAL(clicked(bool)), this, SLOT(getfile()));connect(btfont, SIGNAL(clicked(bool)), this, SLOT(setfont()));connect(btinput, SIGNAL(clicked(bool)), this, SLOT(getstr()));connect(btmsg, SIGNAL(clicked(bool)), this, SLOT(showmsg()));connect(btprg, SIGNAL(clicked(bool)), this, SLOT(showprogress()));}Widget::~Widget()
{}2 自定义对话框
现象模态显示前面不关后面不关小框可以卡其后面的态 有时候对于弹出对话框可以点确定关闭可以点X全部关闭那么这时候需要实现自定义对话框 添加新文件添加C 文件添加 姓名基类 生成myQdialog的cpp和.h文件需要用到信号与槽Q_OBJEC
myqdialog.h
#ifndef MYQDIALOG_H
#define MYQDIALOG_H#include QDialog
#include QLineEdit
#include QPushButtonclass myQDialog : public QDialog
{Q_OBJECT
public:myQDialog();public slots:void ok_pushed(){stat true;close();}public:static int getstat(){myQDialog a;a.exec();return a.stat;}private:QLineEdit *le;QPushButton *pb;int stat;
};#endif // MYQDIALOG_Hmyqdialog.cpp
#include myqdialog.h
#include QVBoxLayoutmyQDialog::myQDialog()
{le new QLineEdit(aaaaaa);pb new QPushButton(OK);QVBoxLayout *vbox new QVBoxLayout;vbox-addWidget(le);vbox-addWidget(pb);setLayout(vbox);stat false;connect(pb, SIGNAL(clicked(bool)), this, SLOT(ok_pushed()));
}widget.h
#ifndef WIDGET_H
#define WIDGET_H#include QWidgetclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent 0);~Widget();
};#endif // WIDGET_Hwidget.cpp
#include widget.h
#include QWidget
#include QDialog
#include myqdialog.hWidget::Widget(QWidget *parent): QWidget(parent)
{
#if 0myQDialog a;a.setFixedSize(100, 100);a.exec();if(!a.stat)exit(0);#endifint s myQDialog::getstat();if(!s)exit(0);
}Widget::~Widget()
{}