学习Qt,Getting started

在界面的设计中,现在用的比较多的是Qt和WPF(C#),以前的MFC已出现衰老趋势。本人最近在学习Qt,觉得很有用,遂决定将学习历程记录下来,或许有感于后之来者,不亦乐哉。

一、Hello Qt

#include "try_qt.h"
#include <QtGui/QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	QLabel *label = new QLabel("Hello Qt!");
	label->show();
	return app.exec();
}
QApplication app(argc, argv);

创建一个QApplication的对象app,管理程序的资源。

QLabel *label = new QLabel("Hello Qt!");

创建一个QLabel的widget,用于显示括号的内容。

label->show();

使label的内容显示。

return app.exec();

退出Qt,操作系统对资源进行重新分配。

二、QPushButton

#include "try_qt.h"
#include <QtGui/QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	QPushButton *button = new QPushButton("Quit");
	QObject::connect(button, SIGNAL(clicked()),
		&app, SLOT(quit()));
	button->show();
	return app.exec();
}

Qt的widgets发出信号,表示用户的行为后者状态的改变。当用户点击button时,QPushButton会发出clicked()信号。一个信号可以和一个函数关联起来,当一个信号被发送时,其对应的slot自动执行。

QObject::connect(button, SIGNAL(clicked()),
		&app, SLOT(quit()));

当用户点击button时,QPushButton会发出clicked()信号,导致其关联的quit()函数自动执行。

三、widgets布局

#include "try_qt.h"
#include <QtGui/QApplication>
#include <QHBoxLayout>
#include <qslider>
#include <qspinbox>

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);

	QWidget *window = new QWidget;
	window->setWindowTitle("Enter your age");

	QSpinBox *spinBox = new QSpinBox;
	QSlider *slider = new QSlider(Qt::Horizontal);
	spinBox->setRange(0,130);
	slider->setRange(0,130);

	QObject::connect(spinBox,SIGNAL(valueChanged(int)),
		slider,SLOT(setValue(int)));
	QObject::connect(slider,SIGNAL(valueChanged(int)),
		spinBox,SLOT(setValue(int)));
	spinBox->setValue(35);

	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(spinBox);
	layout->addWidget(slider);
	window->setLayout(layout);

	window->show();

	return app.exec();
}

该程序由三个widgets组成,分别是QSpinBox,QSlider和QWidget。QWidget是程序的主窗口,子窗口是QSpinBox和QSlider。

<span style="white-space:pre">	</span>QWidget *window = new QWidget;
	window->setWindowTitle("Enter your age");

建立QWidget作为程序的主窗口,调用setWindowTitle()设置主窗口的名称。

	QSpinBox *spinBox = new QSpinBox;
	QSlider *slider = new QSlider(Qt::Horizontal);
	spinBox->setRange(0,130);
	slider->setRange(0,130);

创建QSpinBox和QSlider,并设置他们的有效范围

<pre name="code" class="cpp">	QObject::connect(spinBox,SIGNAL(valueChanged(int)),
		slider,SLOT(setValue(int)));
	QObject::connect(slider,SIGNAL(valueChanged(int)),
		spinBox,SLOT(setValue(int)));

确保spin-box和slider是同步的,不管是信号valueChanged(int)发出还是setValue(int)对slot的值进行设置,他们的值都是一样的。


	spinBox->setValue(35);

设置spinBox的值为35。

	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(spinBox);
	layout->addWidget(slider);
	window->setLayout(layout);

使用布局管理器layout,布局spinBox和slider。调用QWidget::setLayout将布局管理器安装在窗口上。

时间: 2025-01-01 06:17:56

学习Qt,Getting started的相关文章

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

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

Qt入门学习——Qt Creator 中 ui 文件和 Qt 代码关系

通过<Qt Creator的使用>的学习,我们可以借助 Designer(界面设计器)快速设计界面. 此例子 ui 内容如下(只是简单添加了一个按钮): 工程的代码目录结构如下: 最终在工程所在目录会生成一个 ui 文件: 此 ui 文件实际上是xml 文件: 当我们编译 Qt 程序代码,Qt Creator 用 uic 工具把 ui 文件的内容转换成 C++ 代码,在工程目录同一级目录的 build- 目录下自动生成 ui_类名.h 文件,如本例子中的 ui_mywidget.h,是由 my

是否应该学习qt源码(碰到问题的时候,或者文档对函数描述不清楚的时候,可以看一下)

是否应该学习qt源码 如果你想调用某个函数,但是文档并没有清晰描述这个函数的功能的时候,你就需要去阅读源码,看看Qt究竟是怎么实现的.比如用QNetworkAccessManager发送一个QHttpMultiPart,QHttpMultiPart有个boundary属性,如果你设置了这个属性,发送出去的时候你会发现Qt自动在这个boundary的前后加了双引号,但是文档里面却没有提示.阅读源码,你可以看到注释里面是有的.http://www.qtcn.org/bbs/read-htm-tid-

学习Qt的一些问题汇总

1.Qt的dos创建过程 第一步:使用Qt Designer设计好自己想要的界面 第二步:将设计好的界面保存起来,保存文件的后缀一定要是.ui,即如下形式:filename.ui.假设我的界面保存在自己的D盘的Qt for Qt creator目录下的gotocell目录下 第三步:到保存了.ui文件的目录下创建.cpp文件,这个文件是要运行的文件,且要调用到.ui文件 自己的main.cpp文件如下: #include<QApplication> #include<QDialog>

开始学习QT

最近一直在用迅雷公司的迅雷Bolt写界面(有兴趣的可以了解下:http://bolt.xunlei.com/).不停的XML写布局.Lua写交互代码.C++写后台.没有现成的控件可以使用,最基本的一个Button都需要自己从头来定义. 好用是好用但不得不说有点心累.再说迅雷Bolt这个玩意还是有点小众吧,就能画画界面而已,用它的公司除了迅雷自己能有几家呢?对自己将来的工作也不会有特别大的帮助,一旦辞职很难再找到下一家 继续使用BOLT了吧.所以还是自己私底下学点新东西比较好吧. 最初公司决定使用

Qt入门学习——Qt Creator的使用

Qt Creator介绍 通过前面<Qt快速入门(vim纯代码编写)>的学习得知,只有搭建好了 Qt 环境(Qt库和开发工具),即可通过 vim 纯代码编写 Qt 程序,再借助 Qt 里的 qmake 工具编译 Qt 代码,具体流程如下: 1)编写 Qt 代码 2)通过 qmake -project 生成工程文件 3)工程文件中添加所需模块:QT += widgets 4)根据工程文件用 qmake 命令生成 Makefile 5)通过 make 编译代码生成所需可执行程序 6)通过"

QT初体验1:如何学习QT之个人浅见,以及如何读取文本文件,在调试信息中输出。

2017年11月初,随着工作岗位的调动,我转到了研发岗,开始了漫漫程序员的成长之路.首先介绍下个人知识储备,大一学习过C语言,没有工程经验,所学是为了期末考试+2级考试,考完在大学+硕士期间没有用到编程. 来到新的工作岗位,心情是既激动又忐忑的,作为一名青铜段位程序员,我得好好规划下学习.成长的路径. 我选择的方法是,跟着项目走,工作中不可能给你大把时光来造作,去把厚厚的C++ Primer or C++ Primer Plus给通读一遍.带着任务去学习,学的最快.具体而言,我的学习思路是: 1

今天开始学习QT for sysbiam 1

因为自己的诺基亚E6软件更新太不给力了,自己研究一下.主要使用QT,使用塞班的C++,也太难为我了,好了今天,新建按照顺序下去就成了. 做了一滑块的比例尺 代码如下: #include <QtGui/QApplication> #include "qmlapplicationviewer.h" #include <QVBoxLayout> #include <QSpinBox> #include <QSlider> #include &l

Qt入门学习——Qt快速入门(vim纯代码编写)

写代码前,先需搭建环境,详情请看:<Qt 5.4.2 ubuntu环境搭建>. 一个简单空白窗口 打开终端,通过vim first_qt.cpp新建文件,由于Qt代码为C++代码,所以,新建文件的后缀为.cpp. 代码内容如下: #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); //初始化 QWidget