#ifndef NOWYWPIS_H
#define NOWYWPIS_H
#include <QWidget>
#include <QGridLayout>
#include <QLabel>
#include <QComboBox>
#include <QSize>
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
extern QMap<QString, QString> alkohol;
extern QList<QString> ListaAl; //created in wypiszal()
extern QList<QString> ListaAtr; //created in wypiszatr(QString)
extern QList<QString> ListaWart; //created in wypiszwart(QString)
extern void wypiszal();
extern void wypiszatr
(QString wybranyalk
);
extern void wypiszwart
(QString wybranyatr
);
static const QSize rozmiar
(100,
100);
class parametr
{
public:
};
{
Q_OBJECT
public:
private slots:
void AktualIkone();
void AktualAtr();
void AktualTr();
void Dodaj();
void Anuluj();
void WybierzIkoneWpis();
private:
parametr wpis;
QList<parametr> ListaDanych;
};
#ifndef NOWYWPIS_H
#define NOWYWPIS_H
#include <QWidget>
#include <QGridLayout>
#include <QLabel>
#include <QComboBox>
#include <QSize>
QT_BEGIN_NAMESPACE
class QGroupBox;
class QComboBox;
class QDialogButtonBox;
class QToolButton;
QT_END_NAMESPACE
extern QMap<QString, QString> alkohol;
extern QList<QString> ListaAl; //created in wypiszal()
extern QList<QString> ListaAtr; //created in wypiszatr(QString)
extern QList<QString> ListaWart; //created in wypiszwart(QString)
extern void wypiszal();
extern void wypiszatr(QString wybranyalk);
extern void wypiszwart(QString wybranyatr);
static const QSize rozmiar(100, 100);
class parametr
{
public:
QLabel *nazwaatr;
QComboBox *Combowart;
};
class NowyWpis : public QWidget
{
Q_OBJECT
public:
NowyWpis(QWidget *parent = 0);
private slots:
void AktualIkone();
void AktualAtr();
void AktualTr();
void Dodaj();
void Anuluj();
void WybierzIkoneWpis();
void AktualLayout(QVBoxLayout *Lay);
private:
void chooseImage(const QString &title, QImage *image, QToolButton *button);
void loadImage(const QString &fileName, QImage *image, QToolButton *button);
QVBoxLayout *Layout;
QPoint imagePos(const QImage &image) const;
QGroupBox *wybortr;
QGroupBox *dane;
QComboBox *wybierztr;
QDialogButtonBox *buttonBox;
QLabel *ikonatyp;
QToolButton *ikonawpis;
QImage sourceikonawpis;
QString wybranytr;
parametr wpis;
QList<parametr> ListaDanych;
};
To copy to clipboard, switch view to plain text mode
#include <QtGui>
#include "nowywpis.h"
NowyWpis
::NowyWpis(QWidget *parent
) {
connect(buttonBox, SIGNAL(accepted()), this, SLOT(Dodaj()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(Anuluj()));
wypiszal();
{
wybierztr->addItem(klucz);
}
connect(wybierztr, SIGNAL(currentIndexChanged(int)),this, SLOT(AktualTr()));
connect(wybierztr, SIGNAL(currentIndexChanged(int)),this, SLOT(AktualIkone()));
connect(wybierztr, SIGNAL(currentIndexChanged(int)),this, SLOT(AktualAtr()));
grid->addWidget(wybierztr, 0, 0);
grid->addWidget(ikonatyp, 0, 1);
wybortr->setLayout(grid);
AktualLayout(Layout);
setWindowTitle(tr("Dodaj nowy wpis"));
resize(800, 600);
}
{
//////////////////this creates Microsoft Visual C++ Library error “This application has requested the Runtime to terminate it in an unusual way.â€//////////////////////////////
/* while (Lay->count()>0)
{
QWidget *widget = Lay->itemAt(0)->widget();
Lay->removeWidget(widget);
delete widget;
}
////////////////////////////////////////////////////////////////////*/ Lay->addWidget(wybortr);
Lay->addWidget(dane);
Lay->addWidget(buttonBox);
setLayout(Lay);
}
void NowyWpis::AktualTr()
{
wybranytr =(wybierztr->currentText());
}
void NowyWpis::AktualIkone()
{
ikonatyp->setAlignment(Qt::AlignBottom | Qt::AlignRight);
ikonatyp
->setPixmap
(QPixmap("Obrazy/Tr/"+wybranytr
+".png"));
}
void NowyWpis::AktualAtr()
{
ListaDanych.clear();
while (siatka->count()>0)
{
QWidget *widget
= siatka
->itemAt
(0)->widget
();
siatka->removeWidget(widget);
delete widget;
}
wypiszatr(wybranytr);
foreach
(QString atrybut, ListaAtr
) {
wypiszwart(atrybut);
wpis.nazwaatr->setText(atrybut);
foreach
(QString wartosc, ListaWart
) {
wpis.Combowart->addItem(wartosc);
wpis.Combowart->setEditable(true);
};
ListaDanych.append(wpis);
};
int i=0;
foreach (parametr atr, ListaDanych)
{
siatka->addWidget(atr.nazwaatr, i, 0);
siatka->addWidget(atr.Combowart, i, 1);
i++;
};
ikonawpis->setIconSize(rozmiar);
connect(ikonawpis, SIGNAL(clicked()), this, SLOT(WybierzIkoneWpis()));
siatka->addWidget(ikonawpis, 0, 2, 2, 1);
dane->setLayout(siatka);
AktualLayout(Layout);
}
void NowyWpis::WybierzIkoneWpis()
{
chooseImage(tr("Wybierz ikone"), &sourceikonawpis, ikonawpis);
}
{
if (!plik.isEmpty())
loadImage(plik, obraz, przycisk);
}
{
obraz->load(plik);
*obraz = obraz->scaled(rozmiar, Qt::KeepAspectRatio);
QImage obraz2
(rozmiar,
QImage::Format_ARGB32_Premultiplied);
painter.drawImage(imagePos(*obraz), *obraz);
painter.end();
przycisk
->setIcon
(QPixmap::fromImage(obraz2
));
*obraz = obraz2;
}
{
return QPoint((rozmiar.
width()-obraz.
width())/2,
(rozmiar.
height()-obraz.
height())/2);
}
void NowyWpis::Dodaj()
{
}
void NowyWpis::Anuluj()
{
}
#include <QtGui>
#include "nowywpis.h"
NowyWpis::NowyWpis(QWidget *parent)
: QWidget(parent)
{
Layout = new QVBoxLayout;
wybortr = new QGroupBox(tr("Wybor Tr"));
dane = new QGroupBox(tr("Dane"));
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok| QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(Dodaj()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(Anuluj()));
QGridLayout *grid = new QGridLayout;
wybierztr = new QComboBox;
wypiszal();
foreach (QString klucz, ListaAl)
{
wybierztr->addItem(klucz);
}
connect(wybierztr, SIGNAL(currentIndexChanged(int)),this, SLOT(AktualTr()));
ikonatyp = new QLabel();
connect(wybierztr, SIGNAL(currentIndexChanged(int)),this, SLOT(AktualIkone()));
connect(wybierztr, SIGNAL(currentIndexChanged(int)),this, SLOT(AktualAtr()));
grid->addWidget(wybierztr, 0, 0);
grid->addWidget(ikonatyp, 0, 1);
wybortr->setLayout(grid);
AktualLayout(Layout);
setWindowTitle(tr("Dodaj nowy wpis"));
resize(800, 600);
}
void NowyWpis::AktualLayout(QVBoxLayout *Lay)
{
//////////////////this creates Microsoft Visual C++ Library error “This application has requested the Runtime to terminate it in an unusual way.â€//////////////////////////////
/* while (Lay->count()>0)
{
QWidget *widget = Lay->itemAt(0)->widget();
Lay->removeWidget(widget);
delete widget;
}
////////////////////////////////////////////////////////////////////*/ Lay->addWidget(wybortr);
Lay->addWidget(dane);
Lay->addWidget(buttonBox);
setLayout(Lay);
}
void NowyWpis::AktualTr()
{
wybranytr =(wybierztr->currentText());
}
void NowyWpis::AktualIkone()
{
ikonatyp->setAlignment(Qt::AlignBottom | Qt::AlignRight);
ikonatyp->setPixmap(QPixmap("Obrazy/Tr/"+wybranytr+".png"));
}
void NowyWpis::AktualAtr()
{
QGridLayout *siatka = new QGridLayout;
ListaDanych.clear();
while (siatka->count()>0)
{
QWidget *widget = siatka->itemAt(0)->widget();
siatka->removeWidget(widget);
delete widget;
}
wypiszatr(wybranytr);
foreach (QString atrybut, ListaAtr)
{
wpis.Combowart = new QComboBox;
wpis.nazwaatr = new QLabel;
wypiszwart(atrybut);
wpis.nazwaatr->setText(atrybut);
foreach (QString wartosc, ListaWart)
{
wpis.Combowart->addItem(wartosc);
wpis.Combowart->setEditable(true);
};
ListaDanych.append(wpis);
};
int i=0;
foreach (parametr atr, ListaDanych)
{
siatka->addWidget(atr.nazwaatr, i, 0);
siatka->addWidget(atr.Combowart, i, 1);
i++;
};
ikonawpis = new QToolButton();
ikonawpis->setIconSize(rozmiar);
connect(ikonawpis, SIGNAL(clicked()), this, SLOT(WybierzIkoneWpis()));
siatka->addWidget(ikonawpis, 0, 2, 2, 1);
dane->setLayout(siatka);
AktualLayout(Layout);
}
void NowyWpis::WybierzIkoneWpis()
{
chooseImage(tr("Wybierz ikone"), &sourceikonawpis, ikonawpis);
}
void NowyWpis::chooseImage(const QString &nazwa, QImage *obraz, QToolButton *przycisk)
{
QString plik = QFileDialog::getOpenFileName(this, nazwa);
if (!plik.isEmpty())
loadImage(plik, obraz, przycisk);
}
void NowyWpis::loadImage(const QString &plik, QImage *obraz, QToolButton *przycisk)
{
obraz->load(plik);
*obraz = obraz->scaled(rozmiar, Qt::KeepAspectRatio);
QImage obraz2(rozmiar, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&obraz2);
painter.drawImage(imagePos(*obraz), *obraz);
painter.end();
przycisk->setIcon(QPixmap::fromImage(obraz2));
*obraz = obraz2;
}
QPoint NowyWpis::imagePos(const QImage &obraz) const
{
return QPoint((rozmiar.width()-obraz.width())/2,(rozmiar.height()-obraz.height())/2);
}
void NowyWpis::Dodaj()
{
}
void NowyWpis::Anuluj()
{
}
To copy to clipboard, switch view to plain text mode
Bookmarks