void ReceiveCoinsDialog::setModel(WalletModel *_model) { this->model = _model; if(_model && _model->getOptionsModel()) { _model->getRecentRequestsTableModel()->sort(RecentRequestsTableModel::Date, Qt::DescendingOrder); connect(_model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit())); updateDisplayUnit(); QTableView* tableView = ui->recentRequestsView; tableView->verticalHeader()->hide(); tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); tableView->setModel(_model->getRecentRequestsTableModel()); // tableView->setAlternatingRowColors(true); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setSelectionMode(QAbstractItemView::ContiguousSelection); tableView->setColumnWidth(RecentRequestsTableModel::Date, DATE_COLUMN_WIDTH); tableView->setColumnWidth(RecentRequestsTableModel::Label, LABEL_COLUMN_WIDTH); tableView->setColumnWidth(RecentRequestsTableModel::Amount, AMOUNT_MINIMUM_COLUMN_WIDTH); tableView->setGridStyle(Qt::NoPen); QHeaderView * verticalHeader = tableView->verticalHeader(); verticalHeader->setDefaultSectionSize(57); tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter); connect(tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(recentRequestsView_selectionChanged(QItemSelection, QItemSelection))); // Last 2 columns are set by the columnResizingFixer, when the table geometry is ready. columnResizingFixer = new GUIUtil::TableViewLastColumnResizingFixer(tableView, AMOUNT_MINIMUM_COLUMN_WIDTH, DATE_COLUMN_WIDTH, this); }
void availableRoomsWindow::initializeTable() { qDebug() << Q_FUNC_INFO; QTableView* tableView = ui->tableView; tableView->setModel(parameters->availableRoomsMdl); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setAlternatingRowColors(true); tableView->setSelectionMode(QAbstractItemView::SingleSelection); tableView->horizontalHeader()->setHighlightSections(false); tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); tableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setSectionResizeMode(3, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setSectionResizeMode(4, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setSectionResizeMode(5, QHeaderView::ResizeToContents); tableView->hideColumn(1); tableView->hideColumn(6); tableView->hideColumn(7); tableView->hideColumn(8); tableView->hideColumn(9); tableView->hideColumn(10); tableView->hideColumn(11); tableView->hideColumn(12); tableView->hideColumn(13); tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); ui->tableView->verticalHeader()->setDefaultSectionSize(23); }
void MainWindow::createSongsTable(int size) { QTableView * songs = ui->tvSongs; delete songs->model(); delete songs->selectionModel(); QStandardItemModel *model = new QStandardItemModel(size, 3, songs); QItemSelectionModel *selections = new QItemSelectionModel(model); songs->setModel(model); songs->setSelectionModel(selections); songs->horizontalHeader()->setSectionsMovable(true); songs->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); songs->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch); songs->verticalHeader()->setSectionsMovable(false); songs->verticalHeader()->setVisible(false); songs->setSelectionBehavior( QAbstractItemView::SelectRows ); songs->setSelectionMode( QAbstractItemView::SingleSelection ); songs->setContextMenuPolicy(Qt::CustomContextMenu); // Set StaticContents to enable minimal repaints on resizes. songs->viewport()->setAttribute(Qt::WA_StaticContents); model->setHorizontalHeaderItem(0, new QStandardItem(tr("Artist"))); model->setHorizontalHeaderItem(1, new QStandardItem(tr("Title"))); model->setHorizontalHeaderItem(2, new QStandardItem(tr("Length"))); }
ErrorListView::ErrorListView(QWidget* parent) : QWidget(parent), m_model(0) { m_model = new ErrorListModel(this); QTableView* tableView = new QTableView; tableView->setItemDelegate(new ItemDelegate); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setAlternatingRowColors(true); tableView->setShowGrid(false); tableView->verticalHeader()->hide(); tableView->setModel(m_model); #ifdef STROMX_STUDIO_QT4 tableView->horizontalHeader()->setResizeMode(ErrorListModel::TIME, QHeaderView::Interactive); tableView->horizontalHeader()->setResizeMode(ErrorListModel::DESCRIPTION, QHeaderView::Stretch); #else tableView->horizontalHeader()->setSectionResizeMode(ErrorListModel::TIME, QHeaderView::Interactive); tableView->horizontalHeader()->setSectionResizeMode(ErrorListModel::DESCRIPTION, QHeaderView::Stretch); #endif // STROMX_STUDIO_QT4 QPushButton* clearButton = new QPushButton(tr("Clear error log")); connect(clearButton, SIGNAL(clicked()), m_model, SLOT(clear())); QHBoxLayout* buttonLayout = new QHBoxLayout; buttonLayout->addWidget(clearButton); buttonLayout->addStretch(); QVBoxLayout* mainLayout = new QVBoxLayout; mainLayout->addWidget(tableView); mainLayout->addLayout(buttonLayout); setLayout(mainLayout); }
void ConvolveMatrixEffectConfigWidget::editKernel() { if (!m_effect) { return; } QVector<qreal> oldKernel = m_effect->kernel(); QPoint kernelSize = m_effect->order(); m_matrixModel->setMatrix(oldKernel, kernelSize.y(), kernelSize.x()); connect(m_matrixModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(kernelChanged())); QPointer<QDialog> dlg = new QDialog(this); QTableView *table = new QTableView(dlg); table->setModel(m_matrixModel); table->horizontalHeader()->hide(); table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); table->verticalHeader()->hide(); table->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); QVBoxLayout *mainLayout = new QVBoxLayout; dlg->setLayout(mainLayout); mainLayout->addWidget(table); if (dlg->exec() == QDialog::Accepted) { m_effect->setKernel(m_matrixModel->matrix()); emit filterChanged(); } else { m_effect->setKernel(oldKernel); } delete dlg; disconnect(m_matrixModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(kernelChanged())); }
ColorMatrixEffectConfigWidget::ColorMatrixEffectConfigWidget(QWidget *parent) : KFilterEffectConfigWidgetBase(parent), m_effect(0) { QGridLayout * g = new QGridLayout(this); m_type = new KComboBox(this); m_type->addItem(i18n("Apply color matrix")); m_type->addItem(i18n("Saturate colors")); m_type->addItem(i18n("Rotate hue")); m_type->addItem(i18n("Luminance to alpha")); g->addWidget(m_type, 0, 0); m_stack = new QStackedWidget(this); m_stack->setContentsMargins(0, 0, 0, 0); g->addWidget(m_stack, 1, 0); m_matrixModel = new MatrixDataModel(this); QTableView * matrixWidget = new QTableView(m_stack); matrixWidget->setModel(m_matrixModel); matrixWidget->horizontalHeader()->hide(); matrixWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch); matrixWidget->verticalHeader()->hide(); matrixWidget->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); m_stack->addWidget(matrixWidget); QWidget * saturateWidget = new QWidget(m_stack); QGridLayout * saturateLayout = new QGridLayout(saturateWidget); saturateLayout->addWidget(new QLabel(i18n("Saturate value"), saturateWidget), 0, 0); m_saturate = new KDoubleNumInput(saturateWidget); m_saturate->setRange(0.0, 1.0, 0.05, false); saturateLayout->addWidget(m_saturate, 0, 1); saturateLayout->addItem(new QSpacerItem(0, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), 1, 0); saturateWidget->setLayout(saturateLayout); m_stack->addWidget(saturateWidget); QWidget * hueRotateWidget = new QWidget(m_stack); QGridLayout * hueRotateLayout = new QGridLayout(hueRotateWidget); hueRotateLayout->addWidget(new QLabel(i18n("Angle"), hueRotateWidget), 0, 0); m_hueRotate = new KDoubleNumInput(hueRotateWidget); m_hueRotate->setRange(0.0, 360.0, 1.0, false); hueRotateLayout->addWidget(m_hueRotate, 0, 1); hueRotateLayout->addItem(new QSpacerItem(0, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), 1, 0); hueRotateWidget->setLayout(hueRotateLayout); m_stack->addWidget(hueRotateWidget); QWidget * luminanceWidget = new QWidget(m_stack); m_stack->addWidget(luminanceWidget); setLayout(g); connect(m_type, SIGNAL(currentIndexChanged(int)), m_stack, SLOT(setCurrentIndex(int))); connect(m_type, SIGNAL(currentIndexChanged(int)), this, SLOT(typeChanged(int))); connect(m_saturate, SIGNAL(valueChanged(double)), this, SLOT(saturateChanged(double))); connect(m_hueRotate, SIGNAL(valueChanged(double)), this, SLOT(hueRotateChanged(double))); connect(m_matrixModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(matrixChanged())); }
void AddressOverviewWindow::addEntry(QString firstName,QString lastName,QString address,QString city,QString zipCode) { QList< AddressItem > list = model->getList(); AddressItem* addressItem= new AddressItem(firstName,lastName,address,city,zipCode); if (!list.contains(*addressItem)) { model->insertRows(0, 1, QModelIndex()); QModelIndex index = model->index(0, 0, QModelIndex()); model->setData(index, firstName, Qt::EditRole); index = model->index(0, 1, QModelIndex()); model->setData(index, lastName, Qt::EditRole); index = model->index(0, 2, QModelIndex()); model->setData(index, address, Qt::EditRole); index = model->index(0, 3, QModelIndex()); model->setData(index, city, Qt::EditRole); index = model->index(0, 4, QModelIndex()); model->setData(index, zipCode, Qt::EditRole); QTableView *temp = static_cast<QTableView*>(ui->AddressesTableView); proxyModel->sort(temp->horizontalHeader()->sortIndicatorSection()); } else { QMessageBox::information(this, tr("Duplicate Name"), tr("The adress already exists.")); } }
//! [0] int main(int argc, char *argv[]) { QApplication app(argc, argv); QStandardItemModel model(4, 2); QTableView tableView; tableView.setModel(&model); SpinBoxDelegate delegate; tableView.setItemDelegate(&delegate); //! [0] tableView.horizontalHeader()->setStretchLastSection(true); //! [1] for (int row = 0; row < 4; ++row) { for (int column = 0; column < 2; ++column) { QModelIndex index = model.index(row, column, QModelIndex()); model.setData(index, QVariant((row+1) * (column+1))); } //! [1] //! [2] } //! [2] //! [3] tableView.setWindowTitle(QObject::tr("Spin Box Delegate")); tableView.show(); return app.exec(); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); TableModel *model = new TableModel(4, 2, &app); //! [0] QTableView *firstTableView = new QTableView; QTableView *secondTableView = new QTableView; //! [0] //! [1] firstTableView->setModel(model); secondTableView->setModel(model); //! [1] firstTableView->horizontalHeader()->setModel(model); for (int row = 0; row < 4; ++row) { for (int column = 0; column < 2; ++column) { QModelIndex index = model->index(row, column, QModelIndex()); model->setData(index, QVariant(QString("(%1, %2)").arg(row).arg(column))); } } //! [2] secondTableView->setSelectionModel(firstTableView->selectionModel()); //! [2] firstTableView->setWindowTitle("First table view"); secondTableView->setWindowTitle("Second table view"); firstTableView->show(); secondTableView->show(); return app.exec(); }
void AddressWidget::setupTabs() { QStringList groups; groups << "ABC" << "DEF" << "GHI" << "JKL" << "MNO" << "PQR" << "STU" << "VW" << "XYZ"; for (int i = 0; i < groups.size(); ++i) { QString str = groups.at(i); proxyModel = new QSortFilterProxyModel(this); proxyModel->setSourceModel(table); proxyModel->setDynamicSortFilter(true); QTableView *tableView = new QTableView; tableView->setModel(proxyModel); tableView->setSortingEnabled(true); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->horizontalHeader()->setStretchLastSection(true); tableView->verticalHeader()->hide(); tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); tableView->setSelectionMode(QAbstractItemView::SingleSelection); QString newStr = QString("^[%1].*").arg(str); proxyModel->setFilterRegExp(QRegExp(newStr, Qt::CaseInsensitive)); proxyModel->setFilterKeyColumn(0); proxyModel->sort(0, Qt::AscendingOrder); connect(tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SIGNAL(selectionChanged(QItemSelection))); addTab(tableView, str); } }
void DlgCustomizeSpaceball::goPrint() { QTableView *view = new QTableView(this); PrintModel *model = new PrintModel(this, buttonModel, commandModel); view->horizontalHeader()->setResizeMode(QHeaderView::Fixed); view->setModel(model); view->horizontalHeader()->resizeSection(0, 150); view->horizontalHeader()->resizeSection(1, 300); view->resize(600, 600); QPrinter printer; QPrintDialog printDialog(&printer, this); if (printDialog.exec() == QDialog::Accepted) { QPainter p(&printer); view->render(&p); } }
// Table factory QTableView* MakeTableView(QAbstractItemModel* model, bool sortingEnabled = true, uint32_t modelSortColumn = 0) { class MyTable : public QTableView { public: QStyleOptionViewItem viewOptions() const override { QStyleOptionViewItem option = QTableView::viewOptions(); option.decorationAlignment = Qt::AlignHCenter | Qt::AlignCenter; option.decorationPosition = QStyleOptionViewItem::Top; return option; } void mouseMoveEvent(QMouseEvent* event) override { QModelIndex index = indexAt(event->pos()); if (index.isValid()) { QVariant data = model()->data(index, PlayerTableModel::CursorRole); Qt::CursorShape shape = Qt::ArrowCursor; if (!data.isNull()) { shape = Qt::CursorShape(data.toInt()); } setCursor(shape); } QTableView::mouseMoveEvent(event); } }; QTableView* tableView = new MyTable(); tableView->setModel(model); tableView->setSortingEnabled(sortingEnabled); if (sortingEnabled) { tableView->sortByColumn(FindColumn(model, modelSortColumn)); } tableView->verticalHeader()->hide(); tableView->setAlternatingRowColors(true); tableView->verticalHeader()->setDefaultSectionSize(15); tableView->resizeColumnsToContents(); tableView->horizontalHeader()->setStretchLastSection(true); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setSelectionMode(QAbstractItemView::SingleSelection); tableView->setFocusPolicy(Qt::StrongFocus); // enable mouse tracking tableView->setMouseTracking(true); tableView->viewport()->setMouseTracking(true); tableView->installEventFilter(this); tableView->viewport()->installEventFilter(this); return tableView; }
int main(int argc, char *argv[]) { QApplication a(argc, argv); //QListView view; QTableView view; view.setSortingEnabled(false); view.horizontalHeader()->setStretchLastSection(true); view.horizontalHeader()->setVisible(false); view.verticalHeader()->setVisible(false); MillionRows model(Q_NULLPTR); view.setModel(&model); view.setAlternatingRowColors(true); view.setStyleSheet("alternate-background-color: green;background-color: white;"); view.setItemDelegateForColumn(0, new TableStyleDelegate()); view.resizeRowsToContents(); // impact performance - force call sizeHint view.show(); return a.exec(); }
QmitkModulesDialog::QmitkModulesDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { this->setWindowTitle("MITK Modules"); QVBoxLayout* layout = new QVBoxLayout(); this->setLayout(layout); QTableView* tableView = new QTableView(this); QmitkModuleTableModel* tableModel = new QmitkModuleTableModel(tableView); QSortFilterProxyModel* sortProxyModel = new QSortFilterProxyModel(tableView); sortProxyModel->setSourceModel(tableModel); sortProxyModel->setDynamicSortFilter(true); tableView->setModel(sortProxyModel); tableView->verticalHeader()->hide(); tableView->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setSelectionMode(QAbstractItemView::ExtendedSelection); tableView->setTextElideMode(Qt::ElideMiddle); tableView->setSortingEnabled(true); tableView->sortByColumn(0, Qt::AscendingOrder); tableView->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setStretchLastSection(true); tableView->horizontalHeader()->setCascadingSectionResizes(true); layout->addWidget(tableView); QDialogButtonBox* btnBox = new QDialogButtonBox(QDialogButtonBox::Close); layout->addWidget(btnBox); this->resize(800, 600); connect(btnBox, SIGNAL(rejected()), this, SLOT(reject())); }
void KinectCalibration::init(QTableView &kinectCalibrationTableView) { if (mongo_helper_->is_connected() == false) { return; } if (ros::master::check()) { initialising_ = true; CheckBoxDelegate *checkbox_delegate = new CheckBoxDelegate(&kinectCalibrationTableView); kinectCalibrationTableView.setItemDelegateForColumn(0, checkbox_delegate); std::vector<struct NodeRowData> gridData; Query query; query.sort("node.row"); std::unique_ptr<DBClientCursor> cursor = mongo_helper_->find("KinectCalibrationFunction", query); while (cursor->more()) { BSONElement node = cursor->next()["node"]; NodeRowData nodeRowData; if (node["selected"].ok()) node["selected"].Val(nodeRowData.selected); else nodeRowData.selected = false; if (node["friendlyName"].ok()) node["friendlyName"].Val(nodeRowData.friendlyName); if (node["nodePath"].ok()) node["nodePath"].Val(nodeRowData.nodePath); nodeRowData.running = false; gridData.push_back(nodeRowData); } kinect_calibration_table_model_ = std::make_shared<NodeTableModel>(this, mongo_helper_, &gridData); kinectCalibrationTableView.setModel(kinect_calibration_table_model_.get()); kinectCalibrationTableView.setColumnWidth(0, 100); kinectCalibrationTableView.setColumnWidth(1, 300); kinectCalibrationTableView.horizontalHeader()->setResizeMode(2, QHeaderView::Stretch); //kinectCalibrationTableView.setSelectionBehavior(QAbstractItemView::SelectRows); //kinectCalibrationTableView.setAutoFillBackground(true); kinectCalibrationTableView.verticalHeader()->setMovable(true); kinectCalibrationTableView.show(); initialising_ = false; } }
AboutPluginsDialog::AboutPluginsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { QLayout *layout = nullptr; QVBoxLayout *vbox = new QVBoxLayout(this); { QTableView *toolView = new QTableView(this); toolView->setShowGrid(false); toolView->setSelectionBehavior(QAbstractItemView::SelectRows); toolView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); toolView->verticalHeader()->hide(); toolView->setModel(ObjectBroker::model(QStringLiteral("com.kdab.GammaRay.ToolPluginModel"))); QGroupBox *toolBox = new QGroupBox(tr("Loaded Plugins"), this); layout = new QHBoxLayout(toolBox); layout->addWidget(toolView); vbox->addWidget(toolBox); } { QTableView *errorView = new QTableView(this); errorView->setShowGrid(false); errorView->setSelectionBehavior(QAbstractItemView::SelectRows); errorView->setModel(ObjectBroker::model(QStringLiteral( "com.kdab.GammaRay.ToolPluginErrorModel"))); errorView->verticalHeader()->hide(); errorView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); QGroupBox *errorBox = new QGroupBox(tr("Failed Plugins"), this); layout = new QHBoxLayout(errorBox); layout->addWidget(errorView); vbox->addWidget(errorBox); } setWindowTitle(tr("GammaRay: Plugin Info")); }
void MainWindow::setRightView() { QTableView *view = ui->m_rightTableInfo; view->setModel(m_dirsContentsModel); view->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); view->horizontalHeader()->resizeSection(0, 280); // 'Name' section. User can resize view->horizontalHeader()->resizeSection(3, 130); // 'Type' section connect(view, SIGNAL(activated(QModelIndex)), view, SLOT(clearSelection())); // NOTE: must be the first connection connect(view, SIGNAL(activated(QModelIndex)), this, SLOT(slotSetLeftViewCurrentIndex(QModelIndex))); connect(view, SIGNAL(activated(QModelIndex)), this, SLOT(slotActivatedOnlyDirs(QModelIndex))); connect(view->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(slotUpdateSelection(QItemSelection,QItemSelection))); }
int main(int argc, char *argv[]) { Q_INIT_RESOURCE(interview); QApplication app(argc, argv); QSplitter page; QAbstractItemModel *data = new Model(1000, 10, &page); QItemSelectionModel *selections = new QItemSelectionModel(data); QTableView *table = new QTableView; table->setModel(data); table->setSelectionModel(selections); table->horizontalHeader()->setMovable(true); table->verticalHeader()->setMovable(true); // Set StaticContents to enable minimal repaints on resizes. table->viewport()->setAttribute(Qt::WA_StaticContents); page.addWidget(table); QTreeView *tree = new QTreeView; tree->setModel(data); tree->setSelectionModel(selections); tree->setUniformRowHeights(true); tree->header()->setStretchLastSection(false); tree->viewport()->setAttribute(Qt::WA_StaticContents); // Disable the focus rect to get minimal repaints when scrolling on Mac. tree->setAttribute(Qt::WA_MacShowFocusRect, false); page.addWidget(tree); QListView *list = new QListView; list->setModel(data); list->setSelectionModel(selections); list->setViewMode(QListView::IconMode); list->setSelectionMode(QAbstractItemView::ExtendedSelection); list->setAlternatingRowColors(false); list->viewport()->setAttribute(Qt::WA_StaticContents); list->setAttribute(Qt::WA_MacShowFocusRect, false); page.addWidget(list); page.setWindowIcon(QPixmap(":/images/interview.png")); page.setWindowTitle("Interview"); page.show(); return app.exec(); }
void LoungeWidget::setupUI() { QVBoxLayout *mainLayout = new QVBoxLayout(); QTableView *connected = new QTableView(); mainLayout->addWidget(connected); connected->setModel(m_connectedPlayerList); connected->setSortingEnabled(true); connected->resizeColumnsToContents(); connected->horizontalHeader()->setStretchLastSection(true); connected->sortByColumn(0, Qt::AscendingOrder); connect(connected, SIGNAL(activated(QModelIndex)), this, SLOT(processActivatedRow(QModelIndex))); setLayout(mainLayout); }
TableView::TableView() : QWidget() { if (! this->createConnection()) { QString msg = "** Create Database Error"; throw msg; } setWindowTitle(tr("Table View Model")); setMinimumSize(300, 350); // QSqlTableModel *model = new QSqlTableModel(this, m_db); QStringList tempX = m_db.tables(); model->setTable(tempX.at(0)); QSqlError error = model->lastError(); if ( error.isValid() ) { ksMsg( this, "Table View - SQL Error", error.text() ); } model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->setSort(2, Qt::AscendingOrder); model->select(); model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID")); model->setHeaderData(1, Qt::Horizontal, QObject::tr("First name")); model->setHeaderData(2, Qt::Horizontal, QObject::tr("Last name")); // QTableView *view = new QTableView; view->setModel(model); view->resizeColumnsToContents(); QHeaderView *temp = view->horizontalHeader(); temp->setStretchLastSection(true); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(view); setLayout(mainLayout); }
void GuiTools::ModelToView(QAbstractItemModel *model, QAbstractItemView *view) { view->reset(); view->setModel(model); QTableView* tableView = dynamic_cast<QTableView*>(view); if(tableView && model) { tableView->horizontalHeader()->setStretchLastSection(true); tableView->resizeColumnsToContents(); tableView->resizeRowsToContents(); // // set maximum height // int count = model->rowCount(QModelIndex()); // int h=0; // for (int i = 0; i < count; i++) // h += tableView->rowHeight(i); // int maxH = // (h + // total row height // count + // to account for the pixel(s) used in the grid // tableView->horizontalHeader()->height() + // tableView->horizontalScrollBar()->height()); // Need room for the horizontal scrollbar // tableView->setMaximumHeight(maxH); // tableView->resize(tableView->width(),maxH); } QTreeView* treeView = dynamic_cast<QTreeView*>(view); if(treeView && model) { for(int i=0;i<model->columnCount();i++) treeView->resizeColumnToContents(i); treeView->setSortingEnabled(true); } MyTreeView* myTreeView = dynamic_cast<MyTreeView*>(view); if(myTreeView && model) { connect(model,SIGNAL(dataChanged(const QModelIndex&,const QModelIndex&)),myTreeView,SLOT(onDataChanged(const QModelIndex&,const QModelIndex&))); } }
void MainWindow::setupViews() { QSplitter *splitter = new QSplitter; QTableView *table = new QTableView; pieChart = new PieView; splitter->addWidget(table); splitter->addWidget(pieChart); splitter->setStretchFactor(0, 0); splitter->setStretchFactor(1, 1); table->setModel(model); pieChart->setModel(model); QItemSelectionModel *selectionModel = new QItemSelectionModel(model); table->setSelectionModel(selectionModel); pieChart->setSelectionModel(selectionModel); QHeaderView *headerView = table->horizontalHeader(); headerView->setStretchLastSection(true); setCentralWidget(splitter); }
//----------------------------------------------------------------------------- int ctkCheckableHeaderViewTest1(int argc, char * argv [] ) { QApplication app(argc, argv); #if 0 QFileSystemModel model; model.setRootPath(QDir::currentPath()); #else QStandardItemModel model; QStandardItem item; item.insertColumns(0, 5); item.insertRows(0, 7); model.insertRow(0, &item); #endif QTableView table; table.setModel(&model); model.setHeaderData(0, Qt::Horizontal, Qt::Checked, Qt::CheckStateRole); QHeaderView* previousHeaderView = table.horizontalHeader(); ctkCheckableHeaderView* headerView = new ctkCheckableHeaderView(Qt::Horizontal, &table); qDebug() << previousHeaderView->isClickable(); headerView->setClickable(previousHeaderView->isClickable()); headerView->setMovable(previousHeaderView->isMovable()); headerView->setHighlightSections(previousHeaderView->highlightSections()); headerView->setPropagateToItems(true); table.setHorizontalHeader(headerView); qDebug() << headerView->isCheckable(0); table.show(); table.raise(); //app.exec(); return EXIT_SUCCESS; }
SimpleQTableViewWidthInterface::SimpleQTableViewWidthInterface(QTableView& tbl) : TableWidthInterface(tbl.model()->columnCount()), m_tbl(tbl), m_pModel(tbl.model()) { int nCols (m_pModel->columnCount()); m_vbBold.resize(nCols); QFont font (m_tbl.font()); font.setBold(true); QFontMetrics fontMetrics (font); QHeaderView* pHdr (tbl.horizontalHeader()); for (int j = 0; j < nCols; ++j) { if (pHdr->isSectionHidden(j)) { setFixedWidth(j, 0); } else { m_vnHdrWidth[j] = fontMetrics.width(m_pModel->headerData(j, Qt::Horizontal).toString()) + 8/*2*QApplication::style()->pixelMetric(QStyle::PM_DefaultFrameWidth)*/; // PM_DefaultFrameWidth is not THE thing to use, but it's one way to get some spacing for the header; (well it turned up to be too small, so it got replaced by 8; probably look at the source to see what should be used) } } }
QSortFilterProxyModel * GuiTools::ModelToViewWithFilter(QAbstractItemModel *model, QAbstractItemView *view,QLineEdit* lineEdit,QSortFilterProxyModel *proxyModel) { view->reset(); if(!proxyModel) proxyModel = new QSortFilterProxyModel((QObject*)lineEdit); proxyModel->setSourceModel(model); view->setModel(proxyModel); //view->horizontalHeader()->setResizeMode(QHeaderView::Stretch); QTableView* tableView = dynamic_cast<QTableView*>(view); if(tableView) { tableView->horizontalHeader()->setStretchLastSection(true); tableView->resizeColumnsToContents(); tableView->resizeRowsToContents(); tableView->setSortingEnabled(true); tableView->verticalHeader()->hide(); } QTreeView* treeView = dynamic_cast<QTreeView*>(view); if(treeView) { for(int i=0;i<model->columnCount();i++) treeView->resizeColumnToContents(i); treeView->setSortingEnabled(true); } // views' filter proxyModel->setFilterKeyColumn(0); proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); connect(lineEdit,SIGNAL(textChanged(const QString&)), proxyModel,SLOT(setFilterWildcard(const QString&)),Qt::AutoConnection); return proxyModel; }
Widget::Widget(QWidget *parent) : QWidget(parent) { resize(400,300); if(connect()) { QTableView *view = new QTableView(this); QSqlRelationalTableModel *model = new QSqlRelationalTableModel;//要先有数据才能创建model,也就是先连接数据库局 view->setGeometry(0,0,400,300); view->setModel(model); model->setTable("student"); model->setSort(0,Qt::AscendingOrder); // model->setHeaderData(0,Qt::Horizontal,"Name");//from 0 // model->setHeaderData(1,Qt::Horizontal,"Age"); // model->setHeaderData(2,Qt::Horizontal,"likes"); model->setRelation(3,QSqlRelation("city","id","name")); model->select(); // view->setModel(model); view->setSelectionMode(QAbstractItemView::SingleSelection);//设置选择模式 view->setSelectionBehavior(QAbstractItemView::SelectRows);//选择行 // view->resizeColumnsToContents();//tiaozhengziti view->setEditTriggers(QAbstractItemView::DoubleClicked);//不可编辑? QHeaderView *header = view->horizontalHeader(); header->setStretchLastSection(true); view->setItemDelegate(new QSqlRelationalDelegate(view)); // QHeaderView *head = view->verticalHeader(); // head->setStretchLastSection(true); // view->show(); // this?->show(); } }
bool DatabaseHandler::getSpeciesList(QString type, QComboBox * cmb_box) { qDebug() << "Populating species list for " << type; QString qstr = "SELECT name_de, name_lat, euring_id, length FROM taxa LEFT JOIN " "(SELECT id_code, to_char(avg(length), 'FM99.99') as length FROM census WHERE tp='%1' GROUP BY id_code) as lt ON taxa.euring_id = lt.id_code " "WHERE type='%1' ORDER BY seaflag DESC, name_de"; QSqlQueryModel * model = new QSqlQueryModel; model->setQuery(qstr.arg(type)); qDebug() << qstr.arg(type); model->setHeaderData(0, Qt::Horizontal, "Deutscher Name"); model->setHeaderData(1, Qt::Horizontal, "Wissenschaftlicher Name"); model->setHeaderData(2, Qt::Horizontal, "EURING Code"); model->setHeaderData(3, Qt::Horizontal, QString::fromUtf8("Länge")); cmb_box->setModel(model); QTableView * view = new QTableView; cmb_box->setView(view); view->verticalHeader()->hide(); view->hideColumn(2); view->resizeColumnsToContents(); view->setSelectionMode(QAbstractItemView::SingleSelection); view->setSelectionBehavior(QAbstractItemView::SelectRows); view->setMinimumWidth(view->horizontalHeader()->length()); return true; }
void ToitemTableDelegate::setModelData(QWidget *editor, QAbstractItemModel *pModel, const QModelIndex &index) const { bool hitError = false; QVariant oldval = pModel->data(index); ToitemTableModel *model = static_cast<ToitemTableModel*>(pModel); switch (index.column()) { case ITEM_NUMBER_COL: { ItemLineEdit *item = static_cast<ItemLineEdit*>(editor); if (oldval.isNull() || item->itemNumber() != oldval.toString()) { if (! item->itemNumber().isEmpty() && item->isValid()) { XSqlQuery itemq; itemq.prepare("SELECT *, stdCost(item_id) AS stdcost, uom_name " "FROM item JOIN uom ON (item_inv_uom_id=uom_id) " "WHERE (item_id=:item_id);"); itemq.bindValue(":item_id", item->id()); itemq.exec(); if (itemq.first()) { if (itemq.value("stdcost").toDouble() == 0.0) { QMessageBox::critical(0, tr("No Standard Cost"), tr("<p>The selected item has no Standard " "Costing information. Please see your " "controller to correct this situation " "before continuing.")); hitError = true; break; } model->setData(index, item->itemNumber()); model->setData(model->index(index.row(), TOITEM_ITEM_ID_COL), itemq.value("item_id").toInt()); model->setData(model->index(index.row(), TOITEM_UOM_COL), itemq.value("uom_name")); model->setData(model->index(index.row(), TOITEM_STDCOST_COL), formatPurchPrice(itemq.value("stdcost").toDouble())); } else if (itemq.lastError().type() != QSqlError::NoError) { systemError(0, itemq.lastError().databaseText(), __FILE__, __LINE__); hitError = true; break; } } if (hitError) { model->setData(index, QVariant(QVariant::String)); model->setData(model->index(index.row(), TOITEM_ITEM_ID_COL), QVariant(QVariant::Int)); model->setData(model->index(index.row(), TOITEM_STDCOST_COL), QVariant(QVariant::Double)); } } break; } case TOITEM_FREIGHT_COL: { QLineEdit *lineedit = static_cast<QLineEdit*>(editor); if (lineedit->text().toDouble() != oldval.toDouble()) model->setData(index, formatPurchPrice(lineedit->text().toDouble())); break; } case TOITEM_QTY_ORDERED_COL: { QLineEdit *lineedit = static_cast<QLineEdit*>(editor); if (lineedit->text().isEmpty()) model->setData(index, QVariant()); else model->setData(index, lineedit->text().toDouble()); break; } case TOITEM_DUEDATE_COL: { DLineEdit *duedate = static_cast<DLineEdit*>(editor); if (duedate->date() != oldval.toDate()) { model->setData(index, duedate->date()); } break; } #ifdef QE_PROJECT case PRJ_NUMBER_COL: { ProjectLineEdit *prj = static_cast<ProjectLineEdit*>(editor); if (prj->id() != oldval.toInt()) { model->setData(model->index(index.row(), TOITEM_PRJ_ID_COL), prj->id()); model->setData(index, prj->text()); } break; } #endif default: break; } QTableView *view = qobject_cast<QTableView*>(parent()); if (view) { if (hitError) view->setCurrentIndex(index); else if (index.row() >= (model->rowCount() - 1)) { QHeaderView* header = view->horizontalHeader(); if (header->visualIndex(index.column()) >= (header->count() - header->hiddenSectionCount() - 1)) { model->insertRow(model->rowCount()); } } } return; }
//------------------------------------------------------------------------------ AnalysisSummaryWidget::AnalysisSummaryWidget(QSharedPointer<BudgetingPeriod> period, ProjectedBalanceModel* balances, EstimateDiffsModel* over, EstimateDiffsModel* under, QWidget* parent) : QWidget(parent) { importSource = new QLineEdit(tr("None")); importSource->setReadOnly(true); importCount = new QLineEdit("0"); importCount->setReadOnly(true); assignedCount = new QLineEdit("0"); assignedCount->setReadOnly(true); overBudgetCount = new QLineEdit("0"); overBudgetCount->setReadOnly(true); underBudgetCount = new QLineEdit("0"); underBudgetCount->setReadOnly(true); QFormLayout* formLayout = new QFormLayout; formLayout->addRow(tr("Import Source"), importSource); formLayout->addRow(tr("Number of Imported Transactions"), importCount); formLayout->addRow(tr("Number of Assigned Transactions"), assignedCount); formLayout->addRow(tr("Number of Over-budget Estimates"), overBudgetCount); formLayout->addRow(tr("Number of Under-budget Estimates"), underBudgetCount); QTableView* balanceTable = new QTableView(this); balanceTable->setModel(balances); balanceTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); balanceTable->setSelectionBehavior(QTableView::SelectRows); QTableView* overBudgetTable = new QTableView(this); QSortFilterProxyModel* overModel = new QSortFilterProxyModel(this); overModel->setSourceModel(over); overBudgetTable->setModel(overModel); overBudgetTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); overBudgetTable->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch); overBudgetTable->setSelectionBehavior(QTableView::SelectRows); overBudgetTable->hideColumn(0); // Only show expense estimates overModel->setFilterKeyColumn(0); overModel->setFilterRegExp(QRegExp(QString("%1").arg(Estimate::Expense))); QTableView* underBudgetTable = new QTableView(this); QSortFilterProxyModel* underModel = new QSortFilterProxyModel(this); underModel->setSourceModel(under); underBudgetTable->setModel(underModel); underBudgetTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); underBudgetTable->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch); underBudgetTable->setSelectionBehavior(QTableView::SelectRows); underBudgetTable->hideColumn(0); // Only show expense estimates underModel->setFilterKeyColumn(0); underModel->setFilterRegExp(QRegExp(QString("%1").arg(Estimate::Expense))); QVBoxLayout* layout = new QVBoxLayout(this); layout->addLayout(formLayout); layout->addWidget(new QLabel(tr("Projected Ending Balances"))); layout->addWidget(balanceTable); layout->addWidget(new QLabel(tr("Top Over-budget Estimates"))); layout->addWidget(overBudgetTable); layout->addWidget(new QLabel(tr("Top Under-budget Estimates"))); layout->addWidget(underBudgetTable); setLayout(layout); }
Log_data_chart::Log_data_chart( const Log_data* log_data, Grid_continuous_property* value_prop, Grid_filter* filter, QWidget *parent) :Chart_base_display_controls(parent) { QString title = QString("Analysis of hole %1 for %2").arg(log_data->name().c_str()).arg(value_prop->name().c_str()); this->setWindowTitle(title); this->setWindowIcon(QPixmap(":/icons/appli/Pixmaps/ar2gems-icon-256x256.png")); qvtkWidget_->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); qvtkWidget_->resize(400,300); chart_control_->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum)); QSplitter* main_splitter = new QSplitter(Qt::Horizontal, this); QSplitter* chart_splitter = new QSplitter(Qt::Vertical, main_splitter); data_table_view_ = vtkSmartPointer<vtkQtTableView>::New(); data_table_view_->GetWidget()->setParent(main_splitter); chart_control_->setParent(chart_splitter); /* QTabWidget* bottom_tab = new QTabWidget(main_splitter); bottom_tab->addTab(chart_control_,"Chart parameters"); bottom_tab->addTab(data_table_view_->GetWidget(),"Statistics"); bottom_tab->setCurrentIndex(1); */ chart_splitter->addWidget( qvtkWidget_ ); chart_splitter->addWidget( chart_control_ ); //main_splitter->addWidget( bottom_tab ); main_splitter->addWidget(chart_splitter ); main_splitter->addWidget(data_table_view_->GetWidget() ); chart_control_->hide_x_log_scale(true); chart_control_->set_xaxis_label("Distance from top"); QString yaxis_name = QString::fromStdString(value_prop->name().c_str()); chart_control_->set_yaxis_label(yaxis_name); chart_control_->set_title(title); chart_control_->set_legend_visibility( true ); QVBoxLayout* layout = new QVBoxLayout(this); main_splitter->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); report_frame_->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum)); layout->addWidget(main_splitter); layout->addWidget(report_frame_); value_table_ = build_log_data_chart_table( log_data, value_prop, filter ); data_table_view_->SetRepresentationFromInput(value_table_); // table_->setColumnHidden(0, true ); data_table_view_->Update(); QTableView* table = dynamic_cast<QTableView*>(data_table_view_->GetWidget()); // table->setColumnHidden(1, true ); // table->setColumnHidden(2, true ); table->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); table->horizontalHeader()->setResizeMode(QHeaderView::Interactive); //data_view_->GetWidget()->update(); this->intialize_plots(); qvtkWidget_->update(); }