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,布布扣,bubuko.com

时间: 2024-07-29 14:39:57

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

【Qt学习笔记】13.拖放技术:Drag & Drop

1.接受拖放 Drag & Drop 是一个界面操作,用于在两个窗口间传递数据. Drag Source: 拖放源窗口 Drag Target: 拖放目标窗口 拖放操作: 1.在源窗口:选中目标,按下鼠标,移动,拖至目标窗口(Drag) 2.在目标窗口:取消鼠标,到指定位置,松开鼠标(Drop) (按下ESC取消操作) MIME: MIME(Multipurpose Internet Mail Extensions)被传递的数据以MIME格式传送,它是多组type-data数据:(type0,

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

【Qt学习笔记】2.窗体Widget && 屏幕坐标 && 布局

一.窗体 在Qt中,把窗体(口)叫做Widget. Widget可以是主窗体(口),也可以是依附在主窗体(口)上的各种控件,作为子窗体,这两种窗口,分别称作顶级窗口(top-level widget)和子窗口(sub widget). 顶级窗口:一个标准的窗口,带边框.标题栏.若干按钮.(独立) 子窗口:在窗口里面的窗口,例如:按钮.文本框等控件.(不独立,随着父窗口移动) 注意: 1.每个子窗口都有一个父窗口 2.子窗口里面可能包含了若干子窗口,是一层一层的关系. 3.顶级窗口也有父窗口:就是

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

应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比較粗糙,但对刚開始学习的人还是有一点启示,大家一起进步. qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实

QT学习笔记(1)

采用QT创建一个GUI的应用程序时,都必须包含一个QApplication的对象,而对于非GUI的QT程序,可以使用不依赖QtGui库的QApplication QT的主要类: QLable                   标签类 QPushButton          按钮类 QVBoxLayout          竖布局管理器类 QHBoxLayout          横布局管理器类 QWidget                 窗口部件类 QGridLayout        

【Qt学习笔记】1.初步接触

一.前言 Qt是一个跨平台的C++图形面向对象的框架,今天开始学习并记录学习过程,希望通过这段时间的努力学会Qt的使用. 同时我也希望在学习的过程中对C++的各种特性有能深刻的认识. 此外,我在Qt初步的学习过程中,所用的环境应该是 VS2015 IDE 二.安装 官网下载Qt安装包和 Qt for VS addin,分别安装,并配置. 三.Hello World 接下来用Qt框架来完成第一个程序 首先打开VS,创建一个Qt工程 熟悉的C++界面,但Qt是有可视化界面的,点击解决方案管理器中的.

QT学习笔记(14) 定时器类DTimer的使用

一. 在前面的学习笔记中,我们已经学习定时器事件http://www.cnblogs.com/blog-ccs/p/7445323.html 现在,我们学习QTimer定时器类,比较优劣. 二.示例代码 widget.h 1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QTimer>//定时器对象 6 7 namespace Ui { 8 class Widget; 9 } 10 11

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

////////////2015/08/06/////////////////// ///////////by xbw////////////////////////// //////////环境 Qt Creator 5.3.1//// 最终有时间好好学习一下QT了,在这之前就对QT强大的图形界面有所了解,以下记一下笔记啦. 第一节 UI 一步步来,第一次嘛. #include "mainwindow.h" #include "ui_mainwindow.h" #

QT 学习笔记概述

以下笔记为在看书和实践的过程中的部分记录总结: 0. 窗口布局 1) 支持绝对布局和布局管理器布局; 2) 绝对布局不够灵活.无法自动调整大小,需要手动编写代码调整: 3) 布局管理器管理布局比较灵活.可自动调整管理的其下部件大小.位置: 4) 布局管理器目前有基本布局QBoxLayout(水平布局QHBoxLayout.垂直QVBoxLayout).栅格布局QGridLayout.表单布局QFormLayout.栈布局QStackedLayout: 5) 还有其他的布局,不过一般用于其他目的,