Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611860
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: C/C++

2009-04-16 21:19:53

    今天进一步的练习qt的编程方法,通过一个简单的例子来巩固下自定义信号与自定义槽的使用,例子是这样,绘制一个按钮,点击按钮后,在按钮上显示单击的次数。这里需要使用自定义槽,发生SIGNAL(clicked())后除法自定义槽,然后槽在调用成员函数绘制数字。
 

【count.cpp】
#include <QFont>
#include <QWidget>
#include <QPushButton>
#include "count.h"
#include <stdlib.h>
#include <stdio.h>
COUNT::COUNT(QWidget *parent):QWidget(parent)
{
    value=0;
    b1=new QPushButton("button",this);
    b1->setFont(QFont("Times",18,QFont::Bold));
    b1->setGeometry(40,40,120,60);
    connect(b1,SIGNAL(clicked()),this,SLOT(setvalue()) );
}    
void COUNT::setvalue(void)
{
    value++; //对qt的string不太熟悉,还是比较依赖c,这个会在以后的学习中注意
    char *tmp=new char[3];
    tmp[2]='\0';
    sprintf(tmp,"%d",value);
    b1->setText(tmp);
}   

头文件:

【count.h】

#ifndef COUNT_H
#define COUNT_H
#include <QWidget>
#include <QPushButton>
class COUNT:public QWidget
{
    Q_OBJECT
    public:
    COUNT(QWidget *parent=0);
    QPushButton *b1;
    public slots:
    void setvalue(void);    
    private:
    int value;
};
#endif

 
在练习下lcdnumber 和label的使用,绘制一个lcdnumber部件和label部件,放置在qvboxlayout中。
 

【头文件lcdrange.h】
#ifndef LCDRANGE_H
#define LCDRANGE_H
#include <QWidget>
#include <QLCDNumber>
#include <QLabel>
#include <QVBoxLayout>
class lcdrange:public QWidget
{
//    Q_OBJECT
    public:
        lcdrange(QWidget *parent=0);
    QLCDNumber *b1;
    QLabel *text;
    QVBoxLayout *lay;
//    public slots:

//        void setvalue(int value); 
    private:
    int currentvalue;        
};
#endif


【lcdrange.cpp文件】


#include "lcdrange.h"
#include <QWidget>
#include <QLCDNumber>
#include <QLabel>
#include <QVBoxLayout>
lcdrange::lcdrange(QWidget *parent):QWidget(parent)
{
    b1=new QLCDNumber(2);
    b1->setSegmentStyle(QLCDNumber::Filled);
    text=new QLabel("player scores");
    lay=new QVBoxLayout(this);
    lay->addWidget(b1);
    lay->addWidget(text);    
}    

阅读(1184) | 评论(0) | 转发(0) |
0

上一篇:QT入门例程

下一篇:QT入门例程【3】

给主人留下些什么吧!~~