zoukankan      html  css  js  c++  java
  • Qt中图片调用(2)

    项目要求:设置一个按钮和一个LABEL,按下按钮LABEL状态发生变化,再按下LABEL状态又发生变化。

    源码地址:http://pan.baidu.com/s/1qWDFGHQ

    本实验在Qt中图片调用(1)的基础上做修改。

    1. 添加灯状态变量,信号,和槽函数,mywidget.h修改如下:

     1 class MyWidget : public QWidget
     2 {
     3     Q_OBJECT
     4 
     5 public:
     6     explicit MyWidget(QWidget *parent = 0);
     7     ~MyWidget();
     8 
     9 private:
    10     Ui::MyWidget *ui;
    11     int state_lamp;    //灯状态变量
    12 //添加信号定义
    13 signals:
    14     void lamp_signal();//signals
    15 private slots:
    16     void lamp();        //slots
    17     void on_pushButton_clicked();
    18 };

    2. 在构造函数中创建信号与槽函数的连接,然后在按钮单击函数中发射信号。mywidget.cpp修改如下:

     1 #include "mywidget.h"
     2 #include "ui_mywidget.h"
     3 #include <QTextCodec>
     4 
     5 MyWidget::MyWidget(QWidget *parent) :
     6     QWidget(parent),
     7     ui(new Ui::MyWidget)
     8 {
     9     ui->setupUi(this);
    10     ui->label->setPixmap(QPixmap(":/close.jpg"));
    11     ui->pushButton->setText("open");
    12     state_lamp = 0;//初始化lamp的状态
    13     connect(this,SIGNAL(lamp_signal()),this,SLOT(lamp()));//将槽与信号连接
    14 
    15 }
    16 
    17 MyWidget::~MyWidget()
    18 {
    19     delete ui;
    20 }
    21 
    22 void MyWidget::on_pushButton_clicked()
    23 {
    24     emit lamp_signal();    //发射信号
    25 }
    26 
    27 void MyWidget::lamp()      //槽函数
    28 {
    29        state_lamp = ~state_lamp;
    30        if(state_lamp)
    31        {
    32           ui->label->setPixmap(QPixmap(":/open.jpg"));
    33            ui->pushButton->setText("close");
    34        }
    35        else
    36        {
    37            ui->label->setPixmap(QPixmap(":/close.jpg"));
    38            ui->pushButton->setText("open");
    39        }
    40 }

    3. ui界面修改如下:

    4.运行结果如下:点击“open”按钮,图片变为红色且按钮变成“close”状态,再点击“close”按钮,图片又变为灰色。

  • 相关阅读:
    JavaWeb_(Jar)使用fastjson解析json和序列化对象
    JavaWeb_JSTL标签数据的存储
    JavaWeb_EL表达式存储数据及获得项目路径
    JavaWeb_(MVC)管理员后台商品查询demo
    JavaWeb_(设计模式)单例模式
    JavaWeb_客户端相对/绝对路径和服务器端路径
    JavaWeb_Servlet生命周期
    控制导航条最后一个标签样式的三种方法
    JS跳转到顶部的方法
    数学对象Math ceil()、floor()、round()方法
  • 原文地址:https://www.cnblogs.com/zhezhe1988/p/3721962.html
Copyright © 2011-2022 走看看