00001 /******************************************************************** 00002 *================== ЗАО "ННН" ========================* 00003 *********************************************************************/ 00012 /* 00013 * Support E-mail: lit-uriy@yandex.ru 00014 * Лицензия: GNU GPLv2 00015 * TabSize: 4 00016 * Encodding: UTF-8 (w/o BOM) 00017 * 00018 * 00019 * 00020 * 00021 * Log: 00022 * Date Athor Description 00023 * 00024 * 00025 ********************************************************************/ 00026 00027 00028 #include <QApplication> 00029 #include <QTextCodec> 00030 #include <QtGui/QStyleFactory> 00031 #include <QtGui/QStyle> 00032 #include <QStandardItemModel> 00033 #include <QTableView> 00034 00035 00036 #include "ystddelegate.h" 00037 00038 int main(int argc, char *argv[]) 00039 { 00040 QApplication app(argc, argv); 00041 00042 // Установим кодировку для функции перевода tr() 00043 QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); 00044 00045 // Сделаем симпотичный вид 00046 QStyle *pStyle = QStyleFactory::create("Plastique");//Cleanlooks 00047 QApplication::setStyle(pStyle); // 00048 app.setPalette(pStyle->standardPalette()); 00049 00050 // Создадим табличную модель 2 столца, 4 строки 00051 QStandardItemModel model(4, 2); 00052 00053 // Создадим табличное представление 00054 // и установим для него модель 00055 QTableView tableView; 00056 tableView.setModel(&model); 00057 00058 // создадим делегаты разных типов 00059 YStdDelegate delegate(YStdDelegate::TQSpinBox); 00060 YStdDelegate booldelegate(YStdDelegate::TBool); 00061 YStdDelegate datedelegate(YStdDelegate::TQDateTimeEdit); 00062 00063 // Заполним модель данными 00064 for (int row = 0; row < 4; row++) 00065 { 00066 // создаем строчки 00067 for (int column = 0; column < 2; column++) 00068 { 00069 // создаем колонки 00070 QModelIndex index = model.index(row, column, QModelIndex()); 00071 model.setData(index, QVariant((row) + (column)));// 00072 } 00073 } 00074 00075 // Установим делегаты для представления 00076 tableView.setItemDelegate(&delegate); // Для всех ячеек SpinBox 00077 tableView.setItemDelegateForRow(0, &booldelegate);// переопределим для первой строчки->булевый 00078 tableView.setItemDelegateForRow(1, &datedelegate);// переопределим для второй строчки->дата и время 00079 00080 // Установим заголовок окна 00081 tableView.setWindowTitle(QObject::tr("Стандартные делегаты")); 00082 00083 // Отобразим представление 00084 tableView.show(); 00085 return app.exec(); 00086 }
Copyright © 2008 ЗАО "ННН" | Trademarks | YStdDelegate_Example 1.0.0 |