Qt入门

 1 #include <qapplication.h>
 2 #include <qlabel.h>
 3
 4 int main(int argc,char *argv[])
 5 {
 6     QApplication app(argc,argv);
 7     QLabel *label = new QLabel("Hello Qt");
 8     label->show();
 9
10     return app.exec();
11 }

  QLabel窗口部件,窗口部件是用户界面中的一个可视化元素。应用程序的窗口通常就是一个包含了QMenuBar、QToolBar、QStatusBar以及一些其它窗口部件。绝大多数应用程序都会使用一个QMainWindow或者一个QDialog来作为他的窗口,但是Qt更加灵活,以至于任意窗口都可以用作窗口。

  app.exec()将应用程序的控制权传递给Qt。此时,程序会进入时间循环状态,这是一种等待模式,程序会等候用户的动作。例如鼠标单击和按键等操作。用户的动作会让可以产生想用的程序生成一些时间。这的响应通常就是执行一个或者多个函数。

  在命令提示符下,进入hello目录,输入如下命令,生成一个与平台无关的项目文件hello.pro:

  qmake -project

  然后,输入如下命令,从这个项目文件生成一个与平台相关的makefile文件:

  qmake hello.pro

1.2 建立连接

  Qt窗口部件通过发送信号(signal)来表明一个用户动作已经发生了或者一个状态已经改变了。例如,当用户单击QPushButton时,该按钮会发射一个clicked信号。信号可以与函数项链,以便在发射信号是,槽可以得到自动执行。

1.3 窗口部件的布局

布局来管理窗口部件的几何形状,说明如何利用信号和槽来同步窗口部件。

 1 #include <qapplication.h>
 2 #include <qspinbox.h>
 3 #include <qslider.h>
 4 #include <qhboxlayout.h>
 5
 6 int main(int argc,char *argv[])
 7 {
 8     QApplication app(argc,argv);
 9     QWidget *widget = new QWidget();
10
11     widget->setWindowText("Enter Your Age");
12     QSpinBox *spinbox = new QSpinBox();
13     QSlider *slider = new QSlider(Qt::Horizontal);
14     spinbox->setRange(0,130);
15     slider->setRange(0,130);
16
17     QObject::connect(spinbox,SIGNAL(valueChanged(int)),&app,SLOT(setValue(int)));
18     QObject::connect(slider,SIGNAL(valueChanged(int)),&app,SLOT(setValue(int)));
19     spinbox->setValue(35);
20     QHBoxLayout *hlayout = new QHBoxLayout();
21     hlayout->addWidget(spinbox);
22     hlayout->addWidget(slider);
23     window->setLayout(layout);
24
25     window->show();
26     return app.exec();

QHBoxLayout:在水平方向上排列窗口部件,从左到右。

QVBoxLayout:在竖直方向上排列窗口部件,从上到下。

QGridLayout:把个个窗口部件排列在一个网格中。

QWidget::setLayout()函数调用会在窗口上安装该布局管理器。

时间: 2024-11-05 06:11:33

Qt入门的相关文章

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编译,所以借此篇内容说明一下原由并为之后文章的学习做准备. 即使本片内容只是在围绕一个小小的HelloWorld程序开展,但还是希望朋友们不要急于求成,"欲速则不达". 文章整体思路: 我们循序渐进地来看,一个Qt应用的完成有以下一个重要的步骤: 项目创建->源码编译->程序运行

Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装

转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且允许真正地组件编程.基本上,Qt同X Window上的Motif,Openwin,GTK等图形界面库以及Windows平台上的MFC.OWL.VCL.ATL是同类型的东西. 本系列教程以Qt5.6为基础展开精讲. 参考书目: [1]霍亚飞.Qt Creator快速入门(第3版).2017年 [2]蔡

[QT入门篇]3 QObject的拷贝构造函数与赋值运算符

本文主要是针对QObject的拷贝构造函数和赋值运算符进行说明.先来看一下拷贝构造函数定义:拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化.其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制.此函数经常用在函数调用时用户定义类型的值传递及返回.拷贝构造函数要调用基类的拷贝构造函数和成员函数.如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用. 还记得<[QT入门篇]1 QT中的对象模型>中

Qt入门之小心read()给你设下的陷阱

最近帮学长写了个Qt Tcpsocket客户端的应用程序,被一个问题困扰了许久.因为以前没有用Qt 写过socket的客户端程序 加上时间比较紧,都没能好好的查看些资料就急忙的写代码,看了一些别人的代码,差不多都是相同的,但是我就出现了收数据 不全的问题.. 最后查出原因是我在接受服务器端的数据时使用了read()这个函数,接收的是个结构体,这里顺便说下怎么在Qt 下收发结构体 发: clientsocket->write((char *)&CardInfo, sizeof(CardInfo

[Qt入门篇]5 Qt的属性系统——声明属性

[Qt入门篇]5 Qt的属性系统--声明属性 Qt提供了灵活的属性系统,它基于Qt的元对象系统,不依赖于编译器,这保证了Qt独立于编译其和平台的特点.这篇文章主要看看如何声明属性. 属性系统比较复杂,先看一个简单的例子.在QWidget中,有很多属性的声明,找一个简单学习: Q_PROPERTY(boolmodalREADisModal) 这里出现了5个元素:Q_PROPERTY.bool.modal.READ.isModal.这五个元素都是啥作用呢? Q_PROPERTY:用于声明属性的宏:

第一章 Qt入门

现在自己开始学习Qt了,参考资料是C++ GUI Qt4编程 准备做一系列的学习笔记,也算帮助自己学习吧,希望自己能坚持下去. 1.先来一段程序代码,当然是鼎鼎大名的Hello Qt 1 #include <QApplication> 2 #include <QLabel> 3 4 int main(int argc, char** argv) 5 { 6 QApplication app(argc, argv); 7 //QLabel *label = new QLabel(&q

Qt入门 - QVariant

QVariant相当于一个包含大多数Qt数据类型的联合体 将数据存储为一个Private结构体类型的成员变量d: <qvariant.cpp> 1 QVariant::QVariant(Type type) 2 { create(type, 0); } 1 void QVariant::create(int type, const void *copy) 2 { 3 d.type = type; 4 handler->construct(&d, copy); 5 } static

Qt入门 - 全局数据类型

<QtGlobal> 1 typedef signed char qint8; /* 8 bit signed */ 2 typedef unsigned char quint8; /* 8 bit unsigned */ 3 typedef short qint16; /* 16 bit signed */ 4 typedef unsigned short quint16; /* 16 bit unsigned */ 5 typedef int qint32; /* 32 bit signe

Qt入门 - QTextEdit

QTextEdit *textedit = new QTextEdit(); 获取文本框内容:QString qstring = textedit->toPlainText(); 设置文本框内容:textedit->setPlainText(qstring); 自动跳到最后一行: QTextCursor tc = textEdit->textCursor(); tc.movePosition(QTextCursor::End); textEdit->setTextCursor(tc

Qt入门学习——Qt 5 帮助文档的使用

Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法. 我们使用 Qt 帮助文档,主要分为这么几步: 1)类使用的相关介绍 2)查看所用部件(类)的相应成员函数(功能,参数,返回值) 3)查看部件的信号 4)查看部件的事件(所对应的虚函数如何编写) 1)类使用的相关介绍 光标移动到类名字的地方,接着按“F1”即可跳