QT入门
QT += core gui widgets //引入需要用到的库
qDebug()<<"t="<<t<<QTime::currentTime();//在控制台输出当前时间
label->setStyleSheet("background:red; border-radius:25px");//设置样式表
label->setFont(QFont("宋体",20));//设置标签的字体及大小
ctrl + i 格式化代码
F4在cpp文件和h文件之间切换
signal函数和slot函数都是void类型的
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "QTimer"
#include "QLabel"
#include <QWidget>
class MainWindow : public QWidget
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
signals:
public slots:
void slotTimeout();
private:
QTimer timer;//定义全局变量
QLabel *label;
int t = 0;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "QString"
#include "QFont"
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent)
{
this->setGeometry(200,200,600,400);
label = new QLabel(this);//将标签添加到当前的mainwindow中
label->setGeometry(10,10,230,20);//设置标签的位置及大小
label->setFont(QFont("宋体",20));//设置标签的字体及大小
// connect(&timer,SIGNAL(timeout()),this,SLOT(close()));
connect(&timer,SIGNAL(timeout()),this,SLOT(slotTimeout()));
//信号...槽
// t = 0;//这句注释掉,因为在mainwindow.h中已经初始化
timer.start(10);//每10毫秒触发一次
}
void MainWindow::slotTimeout(){
t++;
label->setText(QString::number(t));
}
main.cpp
#include "QApplication"
//#include "QMainWindow"
#include "mainwindow.h"
int main(int argc, char *argv[]){
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
QFile::exists("/chord.wav") ? qDebug()<<"chemin ok" : qDebug()<<"chemin faux";
QString dir=QCoreApplication ::applicationDirPath();
QString filename(dir+"/chord.wav");
QSound::play ( filename );//播放声音
发出信号,现在头文件中定义
signals:
void signalTimeToDoSth();//自定义信号在
在必要的时候发出信号
if(t == 100){
emit signalTimeToDoSth();//发出信号
}
connect(this,SIGNAL(signalTimeToDoSth()),this,SLOT(slotTimeToDoSth()));
链接槽函数响应该信号。此处省略槽函数的具体写法。
QT用LCD方式显示时间
先在头文件定义
QLCDNumber *shizhong;
QVBoxLayout *layout;
QTimer timer1;//定义全局变量
shizhong = new QLCDNumber(this);
shizhong -> setFont(QFont("宋体",50));
shizhong-> move(420,30);
shizhong -> resize(90,40);
shizhong->setDigitCount(10);
shizhong->setMode(QLCDNumber::Dec);//十进制显示
shizhong->setSegmentStyle(QLCDNumber::Flat);//显示方式
layout = new QVBoxLayout();
layout->addWidget(shizhong);
timer1.start(1000) ;
QObject::connect(&timer1, SIGNAL(timeout()), this, SLOT(onTimerOut()));
槽函数
void MainWindow::onTimerOut()
{
QTime time = QTime::currentTime();
shizhong -> display(time.toString("hh:mm:ss"));
}
格式化显示时间
QString s;
QString r = s.sprintf("%02d:%02d:%02d",t/3600,t/60%60,t%60);
label->setText(r);
圆角矩形显示label
label->setStyleSheet("background:#f69; border-radius:25px");
label->setFixedSize(250, 50);
小球碰撞边界检测算法
void MainWindow::slotMove()
{
if(flagx == 0)
x++;
else
x--;
if(x + label->width() >= this->width())
{
flagx = 1;//It's time to move to the right derection
}
else if(x <= 0)
{
flagx = 0;//It's time to move to the left derection
}
if(flagy == 0)
y++;
else
y--;
if(y + label->height() >= this->height())
{
flagy = 1;//向上
}
else if(y <= 0)
{
flagy = 0;//向下
}
label->move(x,y);
}
本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1407300
QT入门的更多相关文章
- Qt入门学习——Qt 5 帮助文档的使用
Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- Qt入门之基础篇(三):掌握Qt4的静态编译基本方法
转载载请注明出处:CN_Simo. 导语: 前两章都提到过“静态编译”(Static Compilation),在Windows下一次静态编译差不多需要长达三个小时才能完成,而且还非常容易由于各种原因 ...
- Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装
转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...
- 第15.25节 PyQt(Python+Qt)入门学习:Model/View开发实战--使用QTableView展示Excel文件内容
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属 ...
- Qt入门(2)——使用Qt编写的Hello world
对于一个qt初学者来说,一步一步来直到作出一个hello world是最基础的入门. 从菜单:应用程序->编程中找到QtCreator
- Qt入门之基础篇(1):Qt4及Qt5的下载与安装
转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...
- QT入门学习笔记2:QT例程
转至:http://blog.51cto.com/9291927/2138876 Qt开发学习教程 一.Qt开发基础学习教程 本部分博客主要根据狄泰学院唐老师的<QT实验分析教程>创作,同 ...
- 1.1 Qt入门
学习Qt的前提是学好C++. 我刚入门Qt,打算趁着暑假2个月时间来学习<C++ GUI Qt 4>这本书. 现在有Qt4和Qt5,似乎很多公司都还是在使用Qt4,所以我也就选择了学习Qt ...
- 第15.38节 PyQt(Python+Qt)入门学习:containers容器类部件QDockWidget停靠窗功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QDockWidget类提供了一个可以停靠在QMainWin ...
随机推荐
- Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)
当你的selenium WebDriver 启动IE11报这个错时:Unable to find element on closed window (WARNING: The server did n ...
- Eclipse配置PyDev插件来实现python开发环境
1.安装python解释器(完成的略过) 2.安装PyDev: 首先需要去Eclipse官网下载:http://www.eclipse.org/,Eclipse需要JDK支持,如果Eclipse无法正 ...
- python 基础 基本数据类型
基本类型的补充 str --> 一次性创建的,不能被修改,强制修改就会在创建一个而之前的也会在 list -->允许重复的集合 修改 记录 链表,下一个元素的位置,上一个元素的位置 tu ...
- hadoop 2.x 完全分布式搭建
HDFS HA 集群搭建: DN(DataNode):3个:NN(NameNode):2:ZK(ZooKeeper):3(大于1的奇数个):ZKFC:和NN在同一台机器:JN:3:RM(Resourc ...
- CCTray配置如何添加远程服务器
前提: Windows防火墙必须开通的TCP端口 或者直接把防火墙关闭(不建议) 或者直接在防火墙规则增加CCNET的服务进去 总者,只要确保能telnet ip 21234能通即可 建议全部软件都装 ...
- Linux-小命令技巧
在bash中检查远程端口是否打开:echo >/dev/tcp/8.8.8.8./53 && echo "open"将进程挂起ctrl+z,不是万能的,有程序 ...
- dbm速算
经常用到,但是经常搞忘记.在这里记录一下换算的一些技巧. 为什么要用dB 在最前面,需要解释一下dB的由来,这样会让理解变得简单一点.事实上,dB(分贝)是一个纯计数单位.使用dB的目的呢,其实就是用 ...
- androidstudio 之 svn配置 汇总
http://www.cnblogs.com/shaocm/p/4182380.html https://www.zhihu.com/question/32298079 http://www.it16 ...
- 修改oracle系统用户system的密码
C:\Users\Administrator>echo %ORACLE_SID% %ORACLE_SID% C:\Users\Administrator>set ORACLE_SID=or ...
- javascript变量、作用域和内存问题......
1基本类型是指那些保存在栈内存的简单数据段,引用类型是指那些保存在堆内存中的对象,变量中保存的实际上只是一个指针. 2javascript中5种基本数据类型Undefined,Null,Boolean ...