QT第一天学习

时间:2022-10-01 10:08:21

sudo apt-get install libqt4-dev
回顾:
面向对象方法:
封装、继承、多态
封装:类
数据和操作
实现了信息隐藏
public: 类的内部 类的外部
private:
protected:

class Test
{
public:
Test();
void show();
static void showB();
private:
int a;
static int b;
};
int Test::b = 0;//静态成员变量的初始化
void Test::show()
{
cout << a << endl;
}
构造函数:
拷贝构造函数(const 类的引用);
=
析构函数
静态成员函数
Test::showB();

友元函数
friend

运算符重载
返回类型 operator运算符(参数);

继承:
实现代码重用
继承方式:
public:公用继承

private:
protected:

多态:
静态多态性:
动态多态性:虚函数 virtual

--------------------------------------------------
QT :
官网:www.qt.io
商业版 开源版
1.简介:
Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。

不限于GUI
文件,网络,数据,图形处理...

qmake //构建器
uic
moc
qt creator
qt designer
assitant QT助手

1.第一个QT程序
#include<QApplication>//QApplication:用于管理应用程序
#include<QWidget>//widget 表示窗体

int main(int argc,char *argv[])
{
//创建一个app对象,管理应用程序
QApplication app(argc,argv);
//创建一个窗体w
QWidget w;
//把窗体显示出来
w.show();
//w.setVisiable(true);
//exec()让应用程序进入事件循环,等待用户操作
return app.exec();
//app.exec();return 0;
}
--------------
qmake -project //生成*.pro文件(工程文件)
qmake //根据*.pro文件生成 Makefile
make //生成可执行程序
./hello

注:如果qmake的版本>=5
那么 在*.pro文件中添加如下代码
QT += widgets

2.qt的版本为4.x.x的乱码处理
QT提供翻译机制:QTextCodec
1.创建一可以理解utf-8格式的解码器:
QTextCodec *codec = QTextCodec::codecForName("utf-8");

2.把解码器交给专司翻译的翻译器
QTextCodec::setCodecForTr(codec);

3.使用中文
w.setWindowTitle(QObject::tr("第一个QT程序"))

QWidget:
标签 按钮 单行文本框 下拉框
QLabel
QPushButton
QLineEdit
QComboBox

3.父窗体与子窗体
当父窗体显示出来的时候,它会负责把它所有的子窗体一起显示出来

当父窗体被销毁时,它会先把它所有的子窗体一起销毁掉

4.常用快捷键
对齐:ctrl+i

5.帮助文档的使用
版本
模块
概要说明
头文件
父子类
属性:不是成员变量,是访问成员变量的函数
公有函数
构造函数
析构函数
信号与槽
6.Linux下QtCreator中文输入法问题
输入命令:env | grep QT
结果:
QT_IM_MODULE=ibus
QT_QPA_PLATFORMTHEME=appmenu-qt5
QT4_IM_MODULE=xim

------------------
把以下命令写入配置文件.profile
export QT_IM_MODULE=ibus

重启一下使生效。

7.窗体的几何属性
位置move()
大小size()
resize()
setGeometry(int x, int y, int w, int h)
setFixedSize()//设置固定大小

作业:
1.在程序运行时,窗口能够抖动。
2.设计一个类,在程序运行时,窗口从最小(100,100)变到最大(800,800),再从最大变回最小.

代码

myWidget.h 代码

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include<QPushButton>
#include<QLabel>
#include<QTime>

void sleep(unsigned int msec);

class myWidget:public QWidget
{
public:
myWidget();
~myWidget();
private:
QPushButton *btn;
QLabel *label;
};
#endif // MYWIDGET_H

myWidget.cpp代码

#include"myWidget.h"
#include<QDebug>
#include<QApplication>

myWidget::myWidget()
{
btn=new QPushButton;
btn->setText("按钮");
btn->setParent(this);
btn->sizeHint();

label=new QLabel("标签",this);
label->move(100,100);
btn->move((400-100)/2,(300-100)/2);
this->resize(400,300);
for(int i=0;i<10;i++)
{
this->move(30,30);
this->show();
sleep(300);
this->move(0,0);
this->show();
sleep(300);
}
this->move(30,30);
for(int i=0;i<10;i++)
{
this->resize(200,100);
this->show();
sleep(300);
this->resize(400,300);
this->show();
sleep(300);
}
}

myWidget::~myWidget()
{

}

void sleep(unsigned int msec)
{
QTime dieTime = QTime::currentTime().addMSecs(msec);
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}

hello.cpp代码

#include<QApplication>
#include"myWidget.h"

int main(int argc,char *argv[])
{
QApplication app(argc,argv);
myWidget w;
return app.exec();
}

QT第一天学习的更多相关文章

  1. Qt 第一步,环境搭建与测试

    晚上离散数学课下课后就开始安装Qt. 最先安装的是5.2版本的,这个最新的版本集成了所有必须的工具,不需要配置,直接就可以运行的. 但是,看书和社区教程以及参考资料时候,发现大多是4.8版本的.于是, ...

  2. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  3. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  4. 20135328信息安全系统设计基础第一周学习总结(Linux应用)

    学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Linux中用户管理命令/ ...

  5. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  6. 《Java程序设计》第一周学习总结

    20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大 ...

  7. 《jave程序设计》第一周学习总结

    <JAVA程序设计>第一周学习总结 教材学习内容总结 在第一周的学习中,我初次认识了JAVA程序的一些基础知识.我发现了很多问题 问题就是自己的代码编写出现了一点问题,符号和单词的大小写都 ...

  8. &lbrack;未完成&rsqb;WebService学习第一天学习笔记

    [未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记

  9. (转)Qt Model&sol;View 学习笔记 &lpar;七&rpar;——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

随机推荐

  1. IEE重建表完全释放磁盘空间具体步骤参考

    环境:RHEL 5.3 + IEE 5.1.40 本文目的:指导项目侧人员再遇到此类改动需求时可以自己更改.需求:mr_intrainterfreq表重建,历史数据全部删掉. 1.停库: 1.1确认现 ...

  2. win7下用mklink命令解决delphiXE系列占用C盘空间的问题

    DelphiXE从2010以后, 安装程序安装完成后都会在ProgramData目录里复制一份安装程序的备份, 随着版本升级安装包越来越大, 占用C盘的空间也就越来越大 虽然可以通过删除的方式删掉, ...

  3. chd校内选拔赛题目&plus;题解

    题目链接   A. Currency System in Geraldion 有1时,所有大于等于1的数都可由1组成.没有1时,最小不幸的数就是1. #include<iostream> ...

  4. 玩一玩nodejs--一个简单的在线实时填表应用

    学习nodejs三天,入了个门,感觉他和jsp.php还是存在较大的差别.本文首先复习这些天学的一些知识点,然后谈一下如何一步一步到做一个在线实时填表的小应用,进一步巩固一下这些个知识点.这里先简单介 ...

  5. 修改User-Agent来伪装浏览器访问手机站点

    有时候为了测试需要,可能需要使用测试手机wap这样的站点,如果用真正的手机去测试也可以实现,但是比较麻烦,我们可以通过设置chrome的user agent来伪装浏览器,达到我们的测试目的. 代码如下 ...

  6. CS&colon;APP3e 深入理解计算机系统&lowbar;3e ShellLab&lpar;tsh&rpar;实验

    详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

  7. XBMC源代码分析 1:整体结构以及编译方法

    XBMC(全称是XBOX Media Center)是一个开源的媒体中心软件.XBMC最初为Xbox而开发,可以运行在Linux.OSX.Windows.Android4.0系统.我自己下载了一个然后 ...

  8. window alias给cmd命令起别名

    场景: Linux的alias命令是个非常实用的工具,任何命令通过alias可以精简到很短,比如:alias l='ls -l' Windows也有alias类似的命令,就是:doskey,开启方法也 ...

  9. python简说(五)操作文件

    f = open('users.txt',encoding='utf-8') #读文件的时候,必须存在在才可以读 文件对象,或者文件句柄res = f.read()print(res)f.close( ...

  10. 好文推荐系列-------&lpar;5&rpar;js模块化编程

    本文主要来源于阮一峰的<Javascript模块化编程>系列文章整合,原文地址:http://www.ruanyifeng.com/blog/2012/10/javascript_modu ...