Qt cvičení - žárovka: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
mBez shrnutí editace
Řádek 7: Řádek 7:
Oba obrázky žárovek vznikly úpravou obrázku [http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Light_bulb_icon_tips.svg/304px-Light_bulb_icon_tips.svg.png]. Obrázky nakopírujte (například) do adersáře projektu.
Oba obrázky žárovek vznikly úpravou obrázku [http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Light_bulb_icon_tips.svg/304px-Light_bulb_icon_tips.svg.png]. Obrázky nakopírujte (například) do adersáře projektu.


[[Soubor:qt-zarovka.png|center|500px]]
[[Soubor:qt-zarovka.png|center|600px]]


Protože žárovka je buď zhasnutá nebo rozsvícená, musí slot tlačítka "vypínač" žárovky rozsvěcet nebo zhasínat. Aplikace musí tedy udržovat dva stavy. Pro jejich implementaci použijte proměnnou typu '''bool''' (privátní atribut třídy MainWindow).  
Protože žárovka je buď zhasnutá nebo rozsvícená, musí slot tlačítka "vypínač" žárovky rozsvěcet nebo zhasínat. Aplikace musí tedy udržovat dva stavy. Pro jejich implementaci použijte proměnnou typu '''bool''' (privátní atribut třídy MainWindow).  

Verze z 26. 9. 2009, 16:23


Napište Qt GUI aplikaci, která bude obsahovat dva widgety PushButton (vypínač) a Label (žárovka). Po stisknutí vypínače se žárovka rozsvítí nebo zhasne. Do widgetu Label lze místo textu umístit obrázek (atribut pixmap), použijte

zhasnutou a rozsvícenou žárovku

Oba obrázky žárovek vznikly úpravou obrázku [1]. Obrázky nakopírujte (například) do adersáře projektu.

Protože žárovka je buď zhasnutá nebo rozsvícená, musí slot tlačítka "vypínač" žárovky rozsvěcet nebo zhasínat. Aplikace musí tedy udržovat dva stavy. Pro jejich implementaci použijte proměnnou typu bool (privátní atribut třídy MainWindow).

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>

namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    bool sviti;

private slots:
    void on_pushButton_clicked();
};

#endif // MAINWINDOW_H

Počáteční nastavení zajišťuje konstruktor (sviti = false;), po každém volání slotu je stav přepnut (operátor negace je !, znak vykřičník).

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    sviti = false;
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    if (sviti)
        ui->label->setPixmap(QPixmap("zarovka1.png"));
    else
        ui->label->setPixmap(QPixmap("zarovka2.png"));

    sviti = !sviti;
}