`
高大且萌
  • 浏览: 3696 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

QT入门学习笔记2 - 建立连接&简单例子

    博客分类:
  • QT
阅读更多

1.建立连接

    Qt通过信号(signal)与槽(slot)来响应用户的动作,信号和槽是一种高级接口,它们被应用于对象之间的通信,它们是Qt的核心特性,也是Qt不同于其它同类工具包的重要地方之一。因为博主也在入门的路上,所以对于其具体机制的实现暂时也无法给出详细的分析,所以以教材上的一个基本例子来熟悉此部分。

    这个应用程序就由一个退出按钮构成,用户可以单击按钮退出程序。

#include <QApplication>
#include <QPushButton>

int main(int argc,char *argv[])
{
    QApplication app(argc,argv);
    QPushButton *button = new QPushButton("Quit");
    //将按钮的click()信号和QApplication对象的quit()槽连接起来
    QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
    button->show();
    return app.exec();
}

    Qt的窗口部件通过发射信号(signal)来表明一个用户动作的发生或状态的改变,信号可以与槽(slot)相连接,以便信号发射时,槽便可以得到自动执行。

    程序运行效果:

    
    

 

2.窗口部件的布局

    我用一个例子来说明如何用布局(layout)来管理窗口中窗口部件的几何形状,也还要说明如何利用信号和槽来同步窗口部件。

    该应用程序可以用来询问用户的年龄,由微调框(spin box)和滑块(slide)来完成年龄的输入:

    
    
   

   

#include <QApplication>
#include <QHBoxLayout>
#include <QPushButton>
#include <QSlider>
#include <QSpinBox>

int main(int argc, char *argv)
{
    QApplication app(argc,argv);
    //该程序将Widget设置为应用程序的主窗口
    QWidget *window = new QWidget;
    window->setWindowTitle("Enter Your Age");
   
    //创建QSpinBox和QSlider两个窗口对象,并对其部分属性进行设置
    QSpinBox *spinBox = new QSpinBox;
    QSlider *slider = new QSlider(Qt::Horizontal);
    //设置有效范围
    spinBox->setRange(0,130);
    slider->setRange(0,130);

    QPushButton *button = new QPushButton("QUIT");

    //设置QSpinBox和QSlider两个对象的信号&槽,使其数值同步
    QObject::connect(spinBox,SIGNAL(valueChanged(int)),
                               slider,SLOT(setValue(int)));
    QObject::connect(slider,SIGNAL(valueChanged(int)),
                               spinBox,SLOT(setValue(int)));
    QObject::connect(button,SIGNAL(clicked()),
                               &app,SLOT(quit()));
    spinBox->setValue(35);

    QHBoxLayout *layout = new QHBoxLayout;    //布局管理器(layout manager)
    layout->addWidget(spinBox);
    layout->addWidget(slider);    //自动重定义父对象,成为这个安装了布局的窗口部件的子对象
    layout->addWidget(button);
    window->setLayout(layout);

    window->show();

    return app.exec();
}

  

    布局管理器(layout manager)就是一个能够对其所负责窗口部件的尺寸大小和位置进行设置的对象,其主要的三个布局管理器类:

  • QHBoxLayout    水平方向上排列,从左至右。
  • QVBoxLayout    竖直方向上排列,从上到下。
  • QGridLayout     网格形式排列。

    目前见过的类之间的继承树:



 

  • 大小: 1 KB
  • 大小: 2.1 KB
  • 大小: 11 KB
分享到:
评论
2 楼 雪梨茉 2015-12-04  
博主怎么好久都没写啦?
1 楼 雪梨茉 2015-11-19  
千里之行,始于足下。支持博主。

相关推荐

    qt-webassembly-examples例子工程

    qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly-examples例子工程qt-webassembly...

    Qt学习笔记--图形视图框架

    Qt学习笔记--图形视图框架很好的,步骤清楚,手把手的教你使用Qt绘制图形视图

    qt-sdk-win-opensource-2010.05.part2.rar

    qt-sdk-win-opensource-2010.05.exe QT很经典的一个版本,包含qtdemo,可以直接看各种demo运行效果,包括qml程序demo, ...qt-sdk-win-opensource-2010.05.part2.rar qt-sdk-win-opensource-2010.05.part3.rar

    学习笔记----图形界面程序Qt安装及其在2410-s上的移植

    通常,这会涉及到在模拟器或实际设备上运行一个简单的Qt应用程序,以确保所有组件都能正常工作。 移植到2410-s硬件平台时,需要考虑以下关键点: - **交叉编译**:确保编译器是为ARM架构设计的,因为2410-s不是...

    qt-sdk-win-opensource-2010.05.part3.rar

    qt-sdk-win-opensource-2010.05.exe QT很经典的一个版本,包含qtdemo,可以直接看各种demo运行效果,包括qml程序, ...qt-sdk-win-opensource-2010.05.part2.rar qt-sdk-win-opensource-2010.05.part3.rar

    Qt学习之路---尤其适用Qt初学者

    《Qt学习之路》是一本非常适合初学者入门的书籍,它不仅涵盖了Qt的基础知识,还深入探讨了许多高级主题。无论是希望快速上手Qt的新手还是希望进一步提升技能的有经验开发者,都能够从中获益匪浅。随着对Qt不断深入的...

    qt-everywhere-src-5.12.12源码

    10. **examples**和**tests**:这两个目录分别包含了示例代码和测试用例,是学习Qt功能和最佳实践的好资源。 编译Qt5.12.12源码需要以下步骤: 1. **安装依赖**:确保你的系统安装了必要的编译工具和库,如GCC或...

    qt-solutions-qt-solutions

    从Qt官网上下载的Qt的解决方案资料库(Qt Solutions Archive) http://qt.nokia.com/products/qt-addons/solutions-archive/ 有JPEG2000的,有Windows中Services的,有浏览器插件的,有单应用程序的,有SOAP的,有...

    QT入门到实战篇-01-创建设置

    QT入门到实战篇-01-创建设置,这个主题涵盖了QT框架的基础知识,特别是关于UI界面设计和控件设置的部分。QT是一个强大的跨平台应用程序开发框架,由Qt Company开发,广泛应用于桌面、移动以及嵌入式系统。在这个教程...

    qt-embedded-linux-opensource-src-4.5.3.tar.gz 移植

    2. **Qt X11**:这是用于桌面系统的 Qt 版本,文中使用的版本是 `qt-x11-opensource-src-4.5.1.tar.gz`。虽然这个版本主要用于桌面系统,但在移植过程中可以作为参考。 3. **QVFB**:这是一个虚拟帧缓冲服务器,用于...

    qt-creator-linux-x86-opensource-1.3.0.bin

    qt-creator-linux-x86-opensource-1.3.0

    Qt从入门到精通包含qt学习之路1-18

    1、新手上路,官方教程 2、qt学习之路1-18 3、进阶学习 4、深入理解qt

    qt-x11-free-3.3.4.tar.gz

    QT是Qt Company开发的一款强大的跨平台应用程序开发框架,主要用于创建图形用户界面和其他软件。QT-x11-free-3.3.4.tar.gz 是一个针对X11窗口系统的Qt库的特定版本,它允许开发者在Linux或其他支持X11的Unix系统上...

    MSVC版qt qt-opensource-windows-x86-msvc2015_64-5.8.0

    qt-opensource-windows-x86-msvc2015_64-5.8.0:vs2015版本的qt,解决官网下载不了的问题,已存在百度网盘

    Qt & Eclipse 插件 qt-eclipse-integration-linux.x86_64-1.6.0.tar.gz

    截至 2009-12-15 nokia 官方公布的最新 Qt & Eclipse 插件。注意:本插件只匹配于 64 位的 Linux 操作系统。关于安装 Qt 插件 到 Eclipse 步骤,请参考作者的 Csdn 博客:Linux 下集成 Qt 插件至 Eclipse 全过程,...

    qt-opensource-windows-x86-5.14.2

    2. **Qt库**: 包含所有必要的静态和动态库文件,如.lib和.dll,这些库文件是开发人员在构建应用时链接到的。 3. **头文件**: .h文件,提供了Qt API的声明,供开发者在源代码中引用。 4. **Qt Creator IDE**: 一个...

    Qt4学习笔记-培训班

    ### Qt4 学习笔记知识点总结 #### 一、Qt 简介 - **Qt** 是由 **Nokia** 公司(原 Trolltech)开发的一款强大的 **C++** 图形用户界面库,能够跨多个操作系统平台使用,如 Windows、Linux、Unix 等。 - **Qt** 的...

    qt-eclipse-integration-linux.x86-1.6.1.tar.gz(qt4.6.1)

    《Eclipse集成Qt开发环境构建指南——以qt-eclipse-integration-linux.x86-1.6.1.tar.gz(qt4.6.1)为例》 在软件开发领域,Qt和Eclipse是两个广泛使用的工具。Qt是一个强大的C++图形用户界面库,而Eclipse则是一款...

    qt-vs-addin-1.1.11-opensource.exe

    工具包

Global site tag (gtag.js) - Google Analytics