Qt4_组装积木

组装积木

这个例子显示了创建几个窗口部件并用信号和槽把它们连接起来,和如何处理重
新定义大小事件。

//mywidget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QPushButton>
#include <QFont>
#include <QLCDNumber>
#include <QSlider>
#include <QVBoxLayout>

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);

    QWidget *window = new QWidget;

    QPushButton *quit = new QPushButton("Quit", this);
    quit->setFont(QFont( "Times", 18, QFont::Bold));
    connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));

    QLCDNumber *lcd = new QLCDNumber(2, this); //创建数字窗口
    QSlider *slider = new QSlider(Qt::Horizontal,this); //创建滑块
    slider->setRange(0, 99); //设置滑块范围
    slider->setValue(0); //设置滑块初始值
    connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(quit);
    layout->addWidget(lcd);
    layout->addWidget(slider);
    window->setLayout(layout);
    window->show();
}

MyWidget::~MyWidget()
{
    delete ui;
}
//main.cpp
#include "mywidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.setGeometry(100, 100, 200, 120);
    w.show();

    return a.exec();
}

在这里插入图片描述

QLCDNumber *lcd = new QLCDNumber(2, this);

lcd 是一个 QLCDNumber,一个可以按像 LCD 的方式显示数字的窗口部件。这个实例被设置为显示两个数字,并且是 this 的子窗口部件。

QSlider

QSlider 是一个经典的滑块,用户可以通过在拖动一个东西在一定范围内调节一个整数数值的方式来使用这个窗口部件。这里我们创建了一个水平的滑块,设置它的范围是0~99,并且它的初始值是 0。

connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));

这里我们是用了信号/槽机制把滑块的 valueChanged()信号和 LCD 数字的 display()槽连接起来了。

无论什么时候滑块的值发生了变化,它都会通过发射 valueChanged()信号来广播这个新的值。因为这个信号已经和 LCD 数字的 display()槽连接起来了,当信号被广播的时候,这个槽就被调用了。这两个对象中的任何一个都不知道对方。这就是组件编程的本质。

槽是和普通 C++成员函数的方式不同,但有着普通 C++成员函数的方位规则。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光开朗男孩

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值