1、模态和非模态的区别:非模态可以同时操作两个窗口,模态的只能在顶层窗口关闭之后才能使用其他窗口

//同时显示出widget和dialog窗口,非模态     QDialog *dialog = new QDialog(this);     dialog->show();

//同时显示出widget和dialog窗口,模态     QDialog *dialog = new QDialog(this);     dialog->setModal(true);     dialog->show();

//显示dialog窗口,等dialog窗口关闭之后widget窗口才显示,模态     QDialog dialog(this);     dialog.exec();     2、多窗口切换    用模态的窗口,先显示一个dialog,点击窗口上的摸个按钮,隐藏该窗口,显示widget窗口,       dialog.cpp    void MyDialog::on_pushButton_clicked()    {      accept();  //单击之后会返回QDialog::Accepted;    }       main.cpp     MyWidget w;

MyDialog dialog; //新建MyDialog类对象

if(dialog.exec()==QDialog::Accepted){ //判断dialog执行结果         w.show();    //如果是按下了“进入主界面”按钮,则显示主界面         return a.exec(); //程序正常运行     }         widget.cpp  //显示之前的窗口,隐藏当前窗口     void MyWidget::on_pushButton_clicked()     {     // 先关闭主界面,其实是隐藏起来了,并没有真正退出     close();

// 新建MyDialog对象     MyDialog dlg;

// 如果按下了“进入主窗口”按钮,则再次显示主界面     // 否则,因为现在已经没有显示的界面了,所以程序将退出     if(dlg.exec()== QDialog::Accepted) show();    }    3,标准窗口  1、颜色对话框     void MyWidget::on_pushButton_clicked()     {     // 创建对象     QColorDialog dialog(Qt::red,this);

// 显示alpha选项     dialog.setOption(QColorDialog::ShowAlphaChannel);

// 以模态方式运行对话框     dialog.exec();

// 获取当前颜色     QColor color = dialog.currentColor();

// 输出颜色信息     qDebug()<<"color:"<<color;    }     2、文件对话框    void MyWidget::on_pushButton_2_clicked()    {     QStringList fileNames = QFileDialog::getOpenFileNames(this,tr("文件对话框"),                                                 "F:",tr("图片文件(*png *jpg);;文本文件(*txt)"));     qDebug()<< "fileNames:" << fileNames;    }        //getOpenFileNames:可以获取多个文件名   返回值QStringList fileNames    //getOpenFileName :只可以获取一个文件名 返回值QString filename     3、字体对话框    // 字体对话框    void MyWidget::on_pushButton_3_clicked()    {     // 标记是否按下了“OK”按钮     bool ok;

// 获得选择的字体     QFont font = QFontDialog::getFont(&ok,this);

// 如果按下“OK”按钮,那么让“字体对话框”按钮使用新字体     // 如果按下“Cancel”按钮,那么输出信息     if(ok)         ui->pushButton_3->setFont(font);  //设置pushbutton_3的字体     else qDebug() <<tr("没有选择字体!");    }

4、对话框messagebox      int ret1 = QMessageBox::question(this,tr("问题对话框"),                      tr("你了解Qt吗?"),QMessageBox::Yes,QMessageBox::No);      //QMessageBox::Yes,QMessageBox::No   是按钮的返回值      if(ret1 == QMessageBox::Yes)      {...}      else      {...}       5、进度对话框    // 进度对话框    void MyWidget::on_pushButton_6_clicked()    {     QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);

// 设置窗口标题     dialog.setWindowTitle(tr("进度对话框"));

// 将对话框设置为模态     dialog.setWindowModality(Qt::WindowModal);     dialog.show();

// 演示复制进度     for(int i=0;i<50000;i++){

// 设置进度条的当前值         dialog.setValue(i);

// 避免界面冻结         QCoreApplication::processEvents();

// 按下取消按钮则中断         if(dialog.wasCanceled()) break;     }

// 这样才能显示100%,因为for循环中少加了一个数     dialog.setValue(50000);     qDebug() << tr("复制结束!");    }

4、使用label设置图片和播放GIF动画     //设置图片     ui->label->setPixmap(QPixmap("H:/Study Res/Qt Creator res/src/03/3-8/logo.png"));     //播放GIF     QMovie *movie = new QMovie("H:/Study Res/Qt Creator res/src/03/3-8/ok.gif");

// 在标签中添加动画     ui->label->setMovie(movie);

// 开始播放     movie->start();     5、QStackedWidget多界面部件    可以拥有多个界面,每个界面可以拥有自己的部件,一次只能显示一个界面。    需要用QComboBox或者QListWidget来选择界面    在QListWidget中添加item,在QStackedWidget中添加界面insert page ->after current page    最后将QListWidget的CurrentRowChange与QStackedWidget的setcurrentindex关联    6、QToolBox抽屉控件    ToolBox的frameshape属性改为Box       //设置第一个抽屉的图标    QIcon iconFriend(":/new/ico/images/friend.ico");       toolBox->setItemIcon(0, iconFriend);

QT学习笔记—1的更多相关文章

  1. qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...

  2. Qt学习笔记-Widget布局管理

    Qt学习笔记4-Widget布局管理       以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,f ...

  3. QT学习笔记(一)——Helloworld

    QT学习笔记(一)--Helloworld 一.调试的基本方法: Log调试法 --在代码中加入一定的打印语句 --打印程序状态和关键变量的值 断点调试法: --在开发环境中的对应代码行加上断点 -- ...

  4. qt学习笔记(七)之数据库简介(所有支持数据库类型的列表)

    笔者最近用Qt写公司的考勤机.本来要求是要基于frameBuffer下用自己开发的easyGUI来进行上层应用开发,但是考虑到easyGUI提供的接口不是很多,就考虑用Qt来开发,顺带练练手. 废话不 ...

  5. Qt学习笔记(2)-利用StackWidget实现选项卡式页面

    学习笔记第二篇,利用Qt实现选项卡式的页面,效果如图1.1-图1.3所示.程序实现的功能是通过点击状态栏实现不同页面的切换,实际上Qt中自带有Tab选项卡式的控件,本文利用StackWidge实现类似 ...

  6. Qt学习笔记(1) hello world

    Qt的简介: Qt是一个跨平台的C++ GUI库实现,原本只是以为它只提供一些图形接口,看来我还是低估了它,采用文档Qt学习之路2开始学习,不知道这个文档是不是有点老了,管他呢,先了解下. 搭建环境: ...

  7. 【Qt学习笔记】Qt+VS2010的配置

    http://blog.csdn.net/jocyln9026/article/details/8575218 关于Qt Qt是1991年由Trolltech公司开发的一个跨平台的C++图形用户界面应 ...

  8. QT学习笔记1

    不准备用MFC了,想切换到QT.所以跟着网上的一个笔记学习. 1 开发环境是VS2008+QT4.7+VassistX 具体如何配置看这个帖子:http://qimo601.iteye.com/blo ...

  9. QT学习笔记(一)——ui的认识

    ////////////2015/08/06/////////////////// ///////////by xbw////////////////////////// //////////环境 Q ...

  10. 【Qt学习笔记】窗口部件整理

    关于Qt中窗口部件的学习 今天开始学习Qt的窗口部件,领略一下Qt的神奇之处,记得2012年的那年冬天,我还学Java呢,现在基本上和Java说再见了,不过对于嵌入式的开发Qt还是举足轻重的,我想趁着 ...

随机推荐

  1. JS图片自动或者手动滚动效果(支持left或者up)

    JS图片自动或者手动滚动效果(支持left或者up) JS图片自动或者手动滚动效果 在谈组件之前 来谈谈今天遇到搞笑的事情,今天上午接到一个杭州电话 0571-28001187 即说是杭州人民法院的 ...

  2. Jquery CSS 与 Attr

    今天用Jquery想动态更改一张位图的src发现css不好用,查看Jquery文档好像是css是设置样式的属性的,如颜色,字体,背景等,而attr貌似是能操作所有属性,包括Jquery未封装的属性. ...

  3. C语言实现进制转换——超图面试题

    递归:递归的原理,就是自己调用自己本身.存在一个顺序的问题,如果在递归前的是顺序执行,递归后的是逆序执行,如下: void gogogo() { //递归之前 gogogo(); //递归之后 } 递 ...

  4. 温故而知新之java的collection framwork

    经常用到的List,Map等这些数据结构,都是来自于java的util包下,而java对于其整体设计,简称为collection framwork.(ps.其实,Map接口并不继承自collectio ...

  5. socket网络编程快速上手(二)——细节问题(5)(完结篇)

    6.Connect的使用方式 前面提到,connect发生EINTR错误时,是不能重新启动的.那怎么办呢,是关闭套接字还是直接退出进程呢?如果EINTR前,三次握手已经发起,我们当然希望链路就此已经建 ...

  6. oracle中sys和System的默认密码

    sys:change_on_install system:oracle 如果用pl/sql登录的话,记得在下面用户权限选项选择sysdba,如图所示:

  7. 如何在大型的并且有表分区的数据库中进行DBCC CHECKDB操作

    如何在大型的并且有表分区的数据库中进行DBCC CHECKDB操作 其实这个问题已经在<SQLSERVER企业级平台管理实践>里徐老师已经讲过了,不过我想用自己的语言再讲详细一些 笔记链接 ...

  8. API HOOK库

    API HOOK库 API HOOK有两种做法,一种是SetWindowHookEx,简单易用,但如果做其它的HOOK,如HOOK OpenProcess,就需要修改内存地址了,内存地址可以通过Wri ...

  9. Oracle日志文件的管理与查看

    --Oracle日志文件管理与查看 select * from v$sql (#查看最近所作的操作) --select * fromv $sqlarea(#查看最近所作的操作) -- 1.查询系统使用 ...

  10. ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇]

    ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇] ASP.NET Web API服务端框架核心是一个独立于具体寄宿环境的消息处理管道,它不关心请求消息来源于何 ...