{
Q_OBJECT
public:
void test();
private:
};
class MyComplexEditor
: public QWidget {
Q_OBJECT
public:
{
m_spinBox = new MyDoubleSpinBox2();
setFocusProxy(m_spinBox);
hbl->setMargin(0);
hbl->setSpacing(0);
hbl->addWidget(m_spinBox);
hbl->addWidget(m_toolButton);
}
void slotenDusukAlis()
{
QString::fromUtf8("İşlemde bir hata oluştu \nLütfen tekrar deneyiniz \nveya \nSistem uzmanına başvurunuz"));
}
MyDoubleSpinBox2 *spinBox() const { return m_spinBox; }
QToolButton *toolButton
() const { return m_toolButton;
}
private:
MyDoubleSpinBox2 *m_spinBox;
};
#endif
class ProformaDelegate : public QItemDelegate
{
Q_OBJECT
QString totalParaBirimi;
public:
ProformaDelegate(QObject *parent = 0, const QString ¶Birimi = QString::null);
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
void test();
private:
QWidget *m_handler;
};
class MyComplexEditor: public QWidget
{
Q_OBJECT
public:
MyComplexEditor(QWidget *parent = 0) : QWidget(parent)
{
m_spinBox = new MyDoubleSpinBox2();
m_toolButton = new QToolButton();
QHBoxLayout *hbl = new QHBoxLayout(this);
m_spinBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
m_toolButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
setFocusProxy(m_spinBox);
hbl->setMargin(0);
hbl->setSpacing(0);
hbl->addWidget(m_spinBox);
hbl->addWidget(m_toolButton);
}
void slotenDusukAlis()
{
QMessageBox::warning(0, QString::fromUtf8("HATA"),
QString::fromUtf8("İşlemde bir hata oluştu \nLütfen tekrar deneyiniz \nveya \nSistem uzmanına başvurunuz"));
}
MyDoubleSpinBox2 *spinBox() const { return m_spinBox; }
QToolButton *toolButton() const { return m_toolButton; }
private:
MyDoubleSpinBox2 *m_spinBox;
QToolButton *m_toolButton;
};
#endif
To copy to clipboard, switch view to plain text mode
#include "proformaDelegate.h"
#include "libs/Delegate/myDoubleSpinBox.h"
{
}
{
if(index.column() == 5)
{
MyComplexEditor *w = new MyComplexEditor(parent);
w->spinBox()->setMinimum(0);
w->spinBox()->setMaximum(4000000000);
w->spinBox()->setDecimals(4);
w->spinBox()->setSuffix(" " + totalParaBirimi);
w->spinBox()->setAlignment(Qt::AlignRight);
w->spinBox()->selectAll();
w->toolButton()->setText("...");
w
->toolButton
()->setPopupMode
(QToolButton::InstantPopup);
connect(enDusukSatis, SIGNAL(trigger()), this, SLOT(test()));
w->toolButton()->addAction(enDusukSatis);
connect(w->toolButton(), SIGNAL(clicked()), this, SLOT(test()));
connect(enOrtAlis, SIGNAL(activated()), w->toolButton(), SLOT(slotenOrtAlis()));
w->toolButton()->addAction(enOrtAlis);
connect(enOrtSatis, SIGNAL(activated()), w->toolButton(), SLOT(slotenOrtSatis()));
w->toolButton()->addAction(enOrtSatis);
connect(enYuksAlis, SIGNAL(activated()), w->toolButton(), SLOT(slotenYuksAlis()));
w->toolButton()->addAction(enYuksAlis);
connect(enYuksSatis, SIGNAL(activated()), w->toolButton(), SLOT(slotenYuksSatis()));
w->toolButton()->addAction(enYuksSatis);
connect(enSonAlis, SIGNAL(activated()), w->toolButton(), SLOT(slotenSonAlis()));
w->toolButton()->addAction(enSonAlis);
connect(enSonSatis, SIGNAL(activated()), w->toolButton(), SLOT(slotenSonSatis()));
w->toolButton()->addAction(enSonSatis);
/* En DüşÃ¼k Alış Fiyatı
En DüşÃ¼k Satış Fiyatı
Ortalama Alış Fiyatı
Ortalama Satış Fiyatı
En Yüksek Alış Fiyatı
En Yüksek Satış Fiyatı
Son Alış fiyatı
Son Satış fiyatı*/
markaid_q.exec("SELECT markaid FROM stokdakiler WHERE stokdakilerid = '" + index.model()->data(index.sibling(index.row(), 2), Qt::StatusTipRole).toString() + "';");
markaid_q.next();
fiyat_tipleri.exec("SELECT id, stokid, markaid, fiyat_tipleri.fiyat_tipi || ' (' || kurcinsi || ') ' || fiyat, fili_fiyat FROM stokdakiler_fiyat "
"LEFT JOIN fiyat_tipleri ON fiyat_tipleri.fiyat_tipi_id = stokdakiler_fiyat.fiyat_tip "
"LEFT JOIN kur ON kur.kurid = stokdakiler_fiyat.kur_id "
"WHERE markaid = '" + markaid_q.value(0).toString() + "' AND "
"stokid = '" + index.model()->data(index.sibling(index.row(), 1), Qt::StatusTipRole).toString() + "';");
int i = 0;
while(fiyat_tipleri.next()){
// QMessageBox::warning(0, QString::fromUtf8("HATA"),
// QString::fromUtf8("İşlemde bir hata oluştu \nLütfen tekrar deneyiniz \nveya \nSistem uzmanına başvurunuz"));
QAction *cutAction
= new QAction(fiyat_tipleri.
value(3).
toString(), w
->toolButton
());
w->toolButton()->addAction(cutAction);
++i;
// sayi = i;
}
// return new MyComplexEditor(parent);
return w;
}
return 0;
}
void ProformaDelegate::test()
{
QString::fromUtf8("İşlemde bir hata oluştu \nLütfen tekrar deneyiniz \nveya \nSistem uzmanına başvurunuz"));
}
{
Q_UNUSED(index);
editor->setGeometry(option.rect);
}
{
if(index.column() == 5)
{
MyComplexEditor *mce = qobject_cast<MyComplexEditor *>(editor);
if (!mce)
return;
mce->spinBox()->setValue(turkish.toDouble(index.model()->data(index, Qt::EditRole).toString().remove(totalParaBirimi, Qt::CaseInsensitive)));
mce->spinBox()->selectAll();
}
}
{
if(index.column() == 5)
{
MyComplexEditor *mce = static_cast<MyComplexEditor *>(editor);
if (!mce)
return;
model->setData(index, gosteri.arg(mce->spinBox()->value(),0,'f',2) + " " + totalParaBirimi, Qt::DisplayRole);
}
}
#include "proformaDelegate.h"
#include "libs/Delegate/myDoubleSpinBox.h"
ProformaDelegate::ProformaDelegate(QObject *parent, const QString ¶Birimi): QItemDelegate(parent)
{
}
QString gosteri = "%L1";
QWidget *ProformaDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QLocale::setDefault(QLocale(QLocale::Turkish, QLocale::Turkey));
if(index.column() == 5)
{
MyComplexEditor *w = new MyComplexEditor(parent);
w->spinBox()->setMinimum(0);
w->spinBox()->setMaximum(4000000000);
w->spinBox()->setDecimals(4);
w->spinBox()->setSuffix(" " + totalParaBirimi);
w->spinBox()->setAlignment(Qt::AlignRight);
w->spinBox()->setButtonSymbols(QAbstractSpinBox::NoButtons);
w->spinBox()->selectAll();
w->toolButton()->setText("...");
w->toolButton()->setPopupMode(QToolButton::InstantPopup);
QAction *enDusukSatis = new QAction(QString::fromUtf8("En DüşÃ¼k Satış Fiyatı"), w->toolButton());
connect(enDusukSatis, SIGNAL(trigger()), this, SLOT(test()));
w->toolButton()->addAction(enDusukSatis);
connect(w->toolButton(), SIGNAL(clicked()), this, SLOT(test()));
QAction *enOrtAlis = new QAction(QString::fromUtf8("Ortalama Alış Fiyatı"), w->toolButton());
connect(enOrtAlis, SIGNAL(activated()), w->toolButton(), SLOT(slotenOrtAlis()));
w->toolButton()->addAction(enOrtAlis);
QAction *enOrtSatis = new QAction(QString::fromUtf8("Ortalama Alış Fiyatı"), w->toolButton());
connect(enOrtSatis, SIGNAL(activated()), w->toolButton(), SLOT(slotenOrtSatis()));
w->toolButton()->addAction(enOrtSatis);
QAction *enYuksAlis = new QAction(QString::fromUtf8("En Yüksek Alış Fiyatı"), w->toolButton());
connect(enYuksAlis, SIGNAL(activated()), w->toolButton(), SLOT(slotenYuksAlis()));
w->toolButton()->addAction(enYuksAlis);
QAction *enYuksSatis = new QAction(QString::fromUtf8("En Yüksek Satış Fiyatı"), w->toolButton());
connect(enYuksSatis, SIGNAL(activated()), w->toolButton(), SLOT(slotenYuksSatis()));
w->toolButton()->addAction(enYuksSatis);
QAction *enSonAlis = new QAction(QString::fromUtf8("Son Alış fiyatı"), w->toolButton());
connect(enSonAlis, SIGNAL(activated()), w->toolButton(), SLOT(slotenSonAlis()));
w->toolButton()->addAction(enSonAlis);
QAction *enSonSatis = new QAction(QString::fromUtf8("Son Satış fiyatı"), w->toolButton());
connect(enSonSatis, SIGNAL(activated()), w->toolButton(), SLOT(slotenSonSatis()));
w->toolButton()->addAction(enSonSatis);
/* En DüşÃ¼k Alış Fiyatı
En DüşÃ¼k Satış Fiyatı
Ortalama Alış Fiyatı
Ortalama Satış Fiyatı
En Yüksek Alış Fiyatı
En Yüksek Satış Fiyatı
Son Alış fiyatı
Son Satış fiyatı*/
QSqlQuery markaid_q;
markaid_q.exec("SELECT markaid FROM stokdakiler WHERE stokdakilerid = '" + index.model()->data(index.sibling(index.row(), 2), Qt::StatusTipRole).toString() + "';");
markaid_q.next();
QSqlQuery fiyat_tipleri;
fiyat_tipleri.exec("SELECT id, stokid, markaid, fiyat_tipleri.fiyat_tipi || ' (' || kurcinsi || ') ' || fiyat, fili_fiyat FROM stokdakiler_fiyat "
"LEFT JOIN fiyat_tipleri ON fiyat_tipleri.fiyat_tipi_id = stokdakiler_fiyat.fiyat_tip "
"LEFT JOIN kur ON kur.kurid = stokdakiler_fiyat.kur_id "
"WHERE markaid = '" + markaid_q.value(0).toString() + "' AND "
"stokid = '" + index.model()->data(index.sibling(index.row(), 1), Qt::StatusTipRole).toString() + "';");
int i = 0;
while(fiyat_tipleri.next()){
// QMessageBox::warning(0, QString::fromUtf8("HATA"),
// QString::fromUtf8("İşlemde bir hata oluştu \nLütfen tekrar deneyiniz \nveya \nSistem uzmanına başvurunuz"));
QAction *cutAction = new QAction(fiyat_tipleri.value(3).toString(), w->toolButton());
w->toolButton()->addAction(cutAction);
++i;
// sayi = i;
}
// return new MyComplexEditor(parent);
return w;
}
return 0;
}
void ProformaDelegate::test()
{
QMessageBox::warning(0, QString::fromUtf8("HATA"),
QString::fromUtf8("İşlemde bir hata oluştu \nLütfen tekrar deneyiniz \nveya \nSistem uzmanına başvurunuz"));
}
void ProformaDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
Q_UNUSED(index);
editor->setGeometry(option.rect);
}
void ProformaDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
QLocale turkish(QLocale::Turkish);
if(index.column() == 5)
{
MyComplexEditor *mce = qobject_cast<MyComplexEditor *>(editor);
if (!mce)
return;
mce->spinBox()->setValue(turkish.toDouble(index.model()->data(index, Qt::EditRole).toString().remove(totalParaBirimi, Qt::CaseInsensitive)));
mce->spinBox()->selectAll();
}
}
void ProformaDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const
{
QLocale turkish(QLocale::Turkish);
if(index.column() == 5)
{
MyComplexEditor *mce = static_cast<MyComplexEditor *>(editor);
if (!mce)
return;
model->setData(index, gosteri.arg(mce->spinBox()->value(),0,'f',2) + " " + totalParaBirimi, Qt::DisplayRole);
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks