/
friendlyperch
/
QGrid
Обзор
Документация
Войти
/
friendlyperch
/
QGrid
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev-ver1
examples/GridExample/MainWindow.cpp
130 строк
5 KB
okuntsev
column header icon
15 янв 2026, 17:41
15 янв 2026, 17:41
27508d0
Код
Авторство
О чём код?
#include "MainWindow.h" #include "ui_MainWindow.h" #include "ExampleDataList.h" #include "ExampleDataItem.h" #include "StatusCellRenderer.h" #include "StatusHeaderRenderer.h" #include "delegates/SpinBoxEditorDelegate.h" #include <QCheckBox> #include <QDate> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) , mDataList(new ExampleDataList()) { ui->setupUi(this); ui->gridView->setMode(Mode::ReadWrite); ui->gridView->setCheckableSelectionEnabled(true); connect(ui->headerVisibleCheckBox, &QCheckBox::toggled, ui->gridView, &GridView::setHeaderVisible); connect(ui->headerTextLineEdit, &QLineEdit::textChanged, ui->gridView, &GridView::setHeaderText); connect(ui->toolboxVisibleCheckBox, &QCheckBox::toggled, ui->gridView, &GridView::setToolboxVisible); connect(ui->searchbarVisibleCheckBox, &QCheckBox::toggled, ui->gridView, &GridView::setSearchBarShow); connect(ui->checkableSelectionEnabledCheckBox, &QCheckBox::toggled, ui->gridView, &GridView::setCheckableSelectionEnabled); connect(ui->globalSearchEnabledCheckBox, &QCheckBox::toggled, ui->gridView, &GridView::setGlobalSearchEnabled); ui->headerVisibleCheckBox->setChecked(ui->gridView->getHeaderVisible()); ui->headerTextLineEdit->setText(ui->gridView->getHeaderText()); ui->toolboxVisibleCheckBox->setChecked(ui->gridView->getToolboxVisible()); ui->searchbarVisibleCheckBox->setChecked(ui->gridView->getSearchBarShow()); ui->checkableSelectionEnabledCheckBox->setChecked(ui->gridView->getCheckableSelectionEnabled()); ui->globalSearchEnabledCheckBox->setChecked(ui->gridView->getGlobalSearchEnabled()); QVector<ExampleDataItem*> items; auto *item1 = new ExampleDataItem(); item1->setName("John Doe"); item1->setAge(30); item1->setSalary(75000.0); item1->setActive(true); item1->setBirthDate(QDate(1993, 5, 15)); item1->setStatus("Active"); items.append(item1); auto *item2 = new ExampleDataItem(); item2->setName("Jane Smith"); item2->setAge(25); item2->setSalary(65000.0); item2->setActive(false); item2->setBirthDate(QDate(1998, 8, 22)); item2->setStatus("Inactive"); items.append(item2); auto *item3 = new ExampleDataItem(); item3->setName("Bob Johnson"); item3->setAge(35); item3->setSalary(85000.0); item3->setActive(true); item3->setBirthDate(QDate(1988, 12, 10)); item3->setStatus("Pending"); items.append(item3); mDataList->setItems(items); QVector<GridColumn*> displayColumns; auto *nameColumn = new GridColumn(); nameColumn->setHeader("Name"); nameColumn->setFieldName("name"); nameColumn->setIndex(0); nameColumn->setEditable(true); nameColumn->setDirectEdit(true); nameColumn->setShowInSearchBar(true); nameColumn->setOperations(Operation::Like | Operation::Equal); displayColumns.append(nameColumn); auto *ageColumn = new GridColumn(); ageColumn->setHeader("Age"); ageColumn->setFieldName("age"); ageColumn->setIndex(1); ageColumn->setEditable(true); ageColumn->setEditorDelegate(new SpinBoxEditorDelegate()); ageColumn->setDirectEdit(true); displayColumns.append(ageColumn); auto *salaryColumn = new GridColumn(); salaryColumn->setHeader("Salary"); salaryColumn->setFieldName("salary"); salaryColumn->setIndex(2); salaryColumn->setEditable(true); salaryColumn->setDirectEdit(true); displayColumns.append(salaryColumn); auto *activeColumn = new GridColumn(); activeColumn->setHeader("Active"); activeColumn->setFieldName("active"); activeColumn->setIndex(3); activeColumn->setCheckable(true); activeColumn->setDirectEdit(true); displayColumns.append(activeColumn); auto *birthDateColumn = new GridColumn(); birthDateColumn->setHeader("Birth Date"); birthDateColumn->setFieldName("birthDate"); birthDateColumn->setIndex(4); birthDateColumn->setEditable(true); birthDateColumn->setDirectEdit(true); birthDateColumn->setHeaderIcon(QIcon(":/icons/Calendar.png")); displayColumns.append(birthDateColumn); auto *statusColumn = new GridColumn(); statusColumn->setHeader("Status"); statusColumn->setFieldName("status"); statusColumn->setIndex(5); statusColumn->setEditable(true); statusColumn->setDirectEdit(true); statusColumn->setCellRenderer(new StatusCellRenderer()); statusColumn->setHeaderRenderer(new StatusHeaderRenderer()); displayColumns.append(statusColumn); ui->gridView->setColumns(displayColumns); ui->gridView->setDatasource(mDataList); } MainWindow::~MainWindow() { delete ui; }