QT学习笔记—1
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的更多相关文章
- qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...
- Qt学习笔记-Widget布局管理
Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,f ...
- QT学习笔记(一)——Helloworld
QT学习笔记(一)--Helloworld 一.调试的基本方法: Log调试法 --在代码中加入一定的打印语句 --打印程序状态和关键变量的值 断点调试法: --在开发环境中的对应代码行加上断点 -- ...
- qt学习笔记(七)之数据库简介(所有支持数据库类型的列表)
笔者最近用Qt写公司的考勤机.本来要求是要基于frameBuffer下用自己开发的easyGUI来进行上层应用开发,但是考虑到easyGUI提供的接口不是很多,就考虑用Qt来开发,顺带练练手. 废话不 ...
- Qt学习笔记(2)-利用StackWidget实现选项卡式页面
学习笔记第二篇,利用Qt实现选项卡式的页面,效果如图1.1-图1.3所示.程序实现的功能是通过点击状态栏实现不同页面的切换,实际上Qt中自带有Tab选项卡式的控件,本文利用StackWidge实现类似 ...
- Qt学习笔记(1) hello world
Qt的简介: Qt是一个跨平台的C++ GUI库实现,原本只是以为它只提供一些图形接口,看来我还是低估了它,采用文档Qt学习之路2开始学习,不知道这个文档是不是有点老了,管他呢,先了解下. 搭建环境: ...
- 【Qt学习笔记】Qt+VS2010的配置
http://blog.csdn.net/jocyln9026/article/details/8575218 关于Qt Qt是1991年由Trolltech公司开发的一个跨平台的C++图形用户界面应 ...
- QT学习笔记1
不准备用MFC了,想切换到QT.所以跟着网上的一个笔记学习. 1 开发环境是VS2008+QT4.7+VassistX 具体如何配置看这个帖子:http://qimo601.iteye.com/blo ...
- QT学习笔记(一)——ui的认识
////////////2015/08/06/////////////////// ///////////by xbw////////////////////////// //////////环境 Q ...
- 【Qt学习笔记】窗口部件整理
关于Qt中窗口部件的学习 今天开始学习Qt的窗口部件,领略一下Qt的神奇之处,记得2012年的那年冬天,我还学Java呢,现在基本上和Java说再见了,不过对于嵌入式的开发Qt还是举足轻重的,我想趁着 ...
随机推荐
- [转]Whirlwind Tour of ARM Assembly
ref:http://www.coranac.com/tonc/text/asm.htm 23.1. Introduction Very broadly speaking, you can divid ...
- jQuery extend函数详解
一 jQuery的扩展方法原型是 $.extend(dest,src1,src2,src3); 含义是将src1,src2,src3合并到dest中,返回值为合并后的dest,该方法合并后,dest的 ...
- ios7学习之路七(隐藏虚拟键盘,解决键盘挡住UITextField问题)
再正式开始之前,先来介绍一下IOS的键盘类型: 一.键盘风格 UIKit框架支持8种风格键盘 typedef enum { UIKeyboardTypeDefault, // 默认键盘:支持所有字符 ...
- arcengine 实现调用arctoolbox中的dissolove
ESRI.ArcGIS.Geoprocessor.Geoprocessor geoprocessor = new Geoprocessor(); ESRI.ArcGIS.DataManagementT ...
- 关于前端JS模块加载器实现的一些细节
最近工作需要,实现一个特定环境的模块加载方案,实现过程中有一些技术细节不解,便参考 了一些项目的api设计约定与实现,记录下来备忘. 本文不探讨为什么实现模块化,以及模块化相关的规范,直接考虑一些技术 ...
- on IRC, how to use secure connection(SSL) and get a cloak/vhost to hide your IP
On stackoverflow I found this: Follow this tutorial below: This is from http://superuser.com/questio ...
- 用友CDM系统,将货位间商品移库单(一步)修改为内调出入库单(一步)方法使用
客户一般只购买CDM供应链系统,但是只买供应链模块不能进行内调等操作,据说插件将近15万(坑爹~~~) 货位间商品移库单和内调差不多,区别是货位间移库默认只能选择登陆账号所属机构的货位. 解决方案:分 ...
- [置顶] vs2008 编译adb 支持4.2 android 系统(改进版)
QQ: 2506314894 本想晚些时候放出来的,但是按捺不住啊,所以修改了之后就立即放出来了.先说明一下,这次用的adb 的源码比较新的,用的vs2008 编译出来,只有一个exe 文件,直接就可 ...
- c++课程设计之通讯录电话簿管理设计
功能 本程序是利用c++实现一个简单的电话簿管理.我是在Linux下利用g++直接编译的,完全可以将文件在VC中编译执行.源程序如有需要自行下载,点此下载,下载程序编译执行 程序执行效果如下; 1.新 ...
- Mybatis-Spring SqlSessionTemplate 源码解析
在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类. <bean id="sqlSession" class="or ...