本文整理汇总了C++中QListView::setItemDelegate方法的典型用法代码示例。如果您正苦于以下问题:C++ QListView::setItemDelegate方法的具体用法?C++ QListView::setItemDelegate怎么用?C++ QListView::setItemDelegate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QListView
的用法示例。
在下文中一共展示了QListView::setItemDelegate方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QWidget
DocumentTypesWidget::DocumentTypesWidget(QWidget *parent)
: QWidget(parent)
, m_createNodeTypeButton(new QPushButton(this))
, m_createEdgeTypeButton(new QPushButton(this))
{
QGridLayout *layout = new QGridLayout(this);
// node types
layout->addWidget(new QLabel(i18nc("@title", "Node Types")));
m_createNodeTypeButton->setText(i18n("Create Type"));
layout->addWidget(m_createNodeTypeButton);
QListView *nodeTypeView = new QListView(this);
NodeTypesDelegate *nodeDelegate = new NodeTypesDelegate(nodeTypeView);
nodeTypeView->setItemDelegate(nodeDelegate);
nodeTypeView->setModel(&m_nodeTypeModel);
layout->addWidget(nodeTypeView);
connect(nodeDelegate, &NodeTypesDelegate::colorChanged,
this, &DocumentTypesWidget::onNodeTypeColorChanged);
connect(nodeDelegate, &NodeTypesDelegate::nameChanged,
this, &DocumentTypesWidget::onNodeTypeNameChanged);
connect(m_createNodeTypeButton, &QPushButton::clicked,
this, &DocumentTypesWidget::onCreateNodeType);
// edge types
layout->addWidget(new QLabel(i18nc("@title", "Edge Types")));
m_createEdgeTypeButton->setText(i18n("Create Type"));
layout->addWidget(m_createEdgeTypeButton);
QListView *edgeTypeView = new QListView(this);
EdgeTypesDelegate *edgeDelegate = new EdgeTypesDelegate(edgeTypeView);
edgeTypeView->setItemDelegate(edgeDelegate);
edgeTypeView->setModel(&m_edgeTypeModel);
layout->addWidget(edgeTypeView);
connect(edgeDelegate, &EdgeTypesDelegate::colorChanged,
this, &DocumentTypesWidget::onEdgeTypeColorChanged);
connect(edgeDelegate, &EdgeTypesDelegate::nameChanged,
this, &DocumentTypesWidget::onEdgeTypeNameChanged);;
connect(edgeDelegate, &EdgeTypesDelegate::directionChanged,
this, &DocumentTypesWidget::onEdgeTypeDirectionChanged);
connect(m_createEdgeTypeButton, &QPushButton::clicked,
this, &DocumentTypesWidget::onCreateEdgeType);
setLayout(layout);
show();
}
示例2: GalleryView
PhotoView::PhotoView(QAbstractGallery *gallery, QWidget *parent, Qt::WindowFlags flags)
: GalleryView(parent, flags)
, model(new ThumbnailModel(gallery))
{
model->setRootType(QDocumentGallery::Image);
QHash<int, QString> properties;
properties.insert(Qt::DisplayRole, QDocumentGallery::fileName);
model->addColumn(properties);
model->setSortPropertyNames(QStringList()
<< QDocumentGallery::title);
QListView *view = new QListView;
view->setIconSize(ThumbnailModel::thumbnailSize);
view->setFlow(QListView::TopToBottom);
view->setViewMode(QListView::IconMode);
view->setUniformItemSizes(true);
view->setWrapping(true);
view->setModel(model.data());
view->setItemDelegate(new PhotoDelegate(this));
connect(view, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex)));
QBoxLayout *layout = new QVBoxLayout;
layout->setMargin(0);
layout->setSpacing(0);
layout->addWidget(view);
setLayout(layout);
}
示例3: prepareProjectListView
void MainWindow::prepareProjectListView()
{
QListView *view = ui->centralWidget->findChild<QListView*>("projectLst");
QStandardItemModel *model = new QStandardItemModel;
view->setItemDelegate(new ProjectItemDelegate);
view->setModel(model);
}
示例4: QTabWidget
QgsWelcomePage::QgsWelcomePage( QWidget* parent )
: QTabWidget( parent )
{
QVBoxLayout* mainLayout = new QVBoxLayout;
mainLayout->setMargin( 0 );
setLayout( mainLayout );
QHBoxLayout* layout = new QHBoxLayout();
layout->setMargin( 9 );
mainLayout->addLayout( layout );
QWidget* recentProjctsContainer = new QWidget;
recentProjctsContainer->setLayout( new QVBoxLayout );
QLabel* recentProjectsTitle = new QLabel( QString( "<h1>%1</h1>" ).arg( tr( "Recent Projects" ) ) );
recentProjctsContainer->layout()->addWidget( recentProjectsTitle );
QListView* recentProjectsListView = new QListView();
mModel = new QgsWelcomePageItemsModel( recentProjectsListView );
recentProjectsListView->setModel( mModel );
recentProjectsListView->setItemDelegate( new QgsWelcomePageItemDelegate( recentProjectsListView ) );
recentProjctsContainer->layout()->addWidget( recentProjectsListView );
addTab( recentProjctsContainer, "Recent Projects" );
QWidget* whatsNewContainer = new QWidget;
whatsNewContainer->setLayout( new QVBoxLayout );
QLabel* whatsNewTitle = new QLabel( QString( "<h1>%1</h1>" ).arg( tr( "QGIS News" ) ) );
whatsNewContainer->layout()->addWidget( whatsNewTitle );
QgsWebView* whatsNewPage = new QgsWebView();
whatsNewPage->setUrl( QUrl::fromLocalFile( QgsApplication::whatsNewFilePath() ) );
whatsNewPage->page()->setLinkDelegationPolicy( QWebPage::DelegateAllLinks );
whatsNewPage->setContextMenuPolicy( Qt::NoContextMenu );
whatsNewPage->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
whatsNewPage->setStyleSheet( "background:transparent" );
whatsNewPage->setAttribute( Qt::WA_TranslucentBackground );
whatsNewContainer->layout()->addWidget( whatsNewPage );
// whatsNewContainer->setMaximumWidth( 250 );
// whatsNewContainer->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred );
addTab( whatsNewContainer, "News" );
connect( whatsNewPage, SIGNAL( linkClicked( QUrl ) ), this, SLOT( whatsNewLinkClicked( QUrl ) ) );
mVersionInformation = new QLabel;
mainLayout->addWidget( mVersionInformation );
mVersionInformation->setVisible( false );
mVersionInfo = new QgsVersionInfo();
connect( mVersionInfo, SIGNAL( versionInfoAvailable() ), this, SLOT( versionInfoReceived() ) );
mVersionInfo->checkVersion();
connect( recentProjectsListView, SIGNAL( activated( QModelIndex ) ), this, SLOT( itemActivated( QModelIndex ) ) );
}
示例5: setModel
/*!
\reimp
Sets the QListView \a w as this ThemeListItem's widget.
\a w must be non-zero and inherit QListView, otherwise this function will abort.
An internal implementation of QItemDelegate is installed on the view to handle
communication between itself and a ThemeListModel.
If a ThemeListModel object has already been set using setModel(), it is installed immediately
using QListView::setModel(). If a call is made to setModel() in the future, that model
will be installed on this widget in the same way.
*/
void QThemeListItem::setWidget(QWidget *w)
{
QThemeWidgetItem::setWidget(w);
Q_ASSERT(widget() == 0 || widget()->inherits("QListView") == true);
if (!widget())
return;
QListView* v = listView();
v->setItemDelegate(new QThemeListDelegate(v, themedScene()->themedView(), themedScene()->themedView()));
if (d->model != 0 && v->model() != d->model)
v->setModel(d->model);
}
示例6: QWidget
AMSamplePlatePre2013Selector::AMSamplePlatePre2013Selector(AMSamplePlatePre2013* sourcePlate, QWidget *parent)
: QWidget(parent) {
samplePlateTableName_ = AMDbObjectSupport::s()->tableNameForClass<AMSamplePlatePre2013>();
// Either use an external plate (if specified in sourcePlate), or make an internal one.
plate_ = sourcePlate ? sourcePlate : new AMSamplePlatePre2013(this);
setupUi();
notesEditor->setObjectName("notesEditor");
notesEditor->setStyleSheet("#notesEditor { background-image: url(:/notepadBackground.png); font: bold 15px \"Marker Felt\";}");
AMDetailedItemDelegate* del = new AMDetailedItemDelegate(this);
// Setting a new view fixes a grayed-menu-background drawing bug on mac
QListView* lview = new QListView(this);
lview->setItemDelegate(del);
lview->setAlternatingRowColors(true);
plateComboBox->setView(lview);
notesEditor->setMaximumHeight(80);
this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
connect(&plateRefreshScheduler_, SIGNAL(executed()), this, SLOT(populateSamplePlates()));
plateRefreshScheduler_.schedule();
onSamplePlateChanged(/*plate_->valid()*/);
connect(AMDatabase::database("user"), SIGNAL(updated(QString,int)), this, SLOT(onDatabaseUpdated(QString,int)), Qt::QueuedConnection);
connect(AMDatabase::database("user"), SIGNAL(created(QString,int)), this, SLOT(onDatabaseCreated(QString,int)), Qt::QueuedConnection);
connect(AMDatabase::database("user"), SIGNAL(removed(QString,int)), this, SLOT(onDatabaseRemoved(QString,int)), Qt::QueuedConnection);
// GUI event connections
connect(plateComboBox, SIGNAL(activated(int)), this, SLOT(onComboBoxActivated(int)));
connect(nameEdit, SIGNAL(textEdited(QString)), this, SLOT(onNameEdited(QString)));
connect(nameEdit, SIGNAL(editingFinished()), this, SLOT(onPlateEditingFinished()));
connect(notesEditor, SIGNAL(textChanged()), this, SLOT(onNotesEdited()));
connect(notesEditor, SIGNAL(editingFinished(int)), this, SLOT(onPlateEditingFinished()));
notesHeaderButton->setChecked(false);
notesEditor->setVisible(false);
connect(notesHeaderButton, SIGNAL(clicked(bool)), notesEditor, SLOT(setVisible(bool)));
// when our current sample plate is re-loaded out of the database, respond to update the GUI values
connect(plate_, SIGNAL(loadedFromDb()), this, SLOT(onSamplePlateChanged()), Qt::QueuedConnection);
}
示例7: QWidget
QgsWelcomePage::QgsWelcomePage( bool skipVersionCheck, QWidget* parent )
: QWidget( parent )
{
QSettings settings;
QVBoxLayout* mainLayout = new QVBoxLayout;
mainLayout->setMargin( 0 );
setLayout( mainLayout );
QHBoxLayout* layout = new QHBoxLayout();
layout->setMargin( 9 );
mainLayout->addLayout( layout );
QWidget* recentProjctsContainer = new QWidget;
recentProjctsContainer->setLayout( new QVBoxLayout );
recentProjctsContainer->layout()->setContentsMargins( 3, 3, 3, 0 );
QLabel* recentProjectsTitle = new QLabel( QString( "<h1>%1</h1>" ).arg( tr( "Recent Projects" ) ) );
recentProjctsContainer->layout()->addWidget( recentProjectsTitle );
QListView* recentProjectsListView = new QListView();
recentProjectsListView->setResizeMode( QListView::Adjust );
mModel = new QgsWelcomePageItemsModel( recentProjectsListView );
recentProjectsListView->setModel( mModel );
recentProjectsListView->setItemDelegate( new QgsWelcomePageItemDelegate( recentProjectsListView ) );
recentProjctsContainer->layout()->addWidget( recentProjectsListView );
layout->addWidget( recentProjctsContainer );
mVersionInformation = new QLabel;
mainLayout->addWidget( mVersionInformation );
mVersionInformation->setVisible( false );
mVersionInfo = new QgsVersionInfo();
if ( !QgsApplication::isRunningFromBuildDir() && settings.value( "/qgis/checkVersion", true ).toBool() && !skipVersionCheck )
{
connect( mVersionInfo, SIGNAL( versionInfoAvailable() ), this, SLOT( versionInfoReceived() ) );
mVersionInfo->checkVersion();
}
connect( recentProjectsListView, SIGNAL( activated( QModelIndex ) ), this, SLOT( itemActivated( QModelIndex ) ) );
}
示例8: QWidget
TMainWindow::TMainWindow(TImageStorage* imageStorage, QAbstractItemModel* friendListModel)
: QWidget(NULL)
{
qDebug() << Q_FUNC_INFO;
Q_ASSERT(friendListModel && "missing friendListModel");
this->setGeometry(QDesktopWidget().availableGeometry().center().x() - (MAIN_WINDOW_WIDTH / 2),
QDesktopWidget().availableGeometry().center().y() - (MAIN_WINDOW_HEIGHT / 2),
MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT);
QVBoxLayout* currentLayout = new QVBoxLayout(this);
QListView* friendListView = new QListView();
friendListView->setModel(friendListModel);
TFriendItemDelegate* delegate = new TFriendItemDelegate(imageStorage);
friendListView->setItemDelegate(delegate);
connect(friendListView, &QListView::doubleClicked, delegate, &TFriendItemDelegate::OnDoubleClick);
connect(delegate, &TFriendItemDelegate::FriendDoubleClicked, this, &TMainWindow::FriendDoubleClicked);
currentLayout->addWidget(friendListView);
this->show();
}
示例9: main
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
/*QLabel *id = new QLabel("Email or mobile phone");
QLineEdit *idLine = new QLineEdit;
QLabel *password = new QLabel("Password");
QLineEdit *passwordLine = new QLineEdit;
QPushButton *enter = new QPushButton("Enter");
QHBoxLayout *enterBox = new QHBoxLayout;
//LoginScreenForm *form = new LoginScreenForm(id, idLine, password, passwordLine, enter, box, enterBox);
//LoginScreen mainWindow(form);*/
QVBoxLayout *box = new QVBoxLayout;
QWebView *view = new QWebView;
QProgressBar *bar = new QProgressBar;
WebLoginScreen scr(view, bar, box);
scr.show();
requester req("6585056", "effe73b8de201068cc9a8819dac22d518f4e6a06e304d542c71f7af93f88fad2b44db86ff2ccc28b831ed");
req.getAudio("6585056");
QEventLoop wait;
QTimer::singleShot(5000, &wait, SLOT(quit()));
wait.exec();
qDebug() << "get Result " << req.getResult();
QByteArray array = req.getResult();
qDebug() << "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" << array;
xmlParser prs;
dataHolder* data = new dataHolder(prs.parseXML(array));
qDebug() << data->getObject(102).value("title").toString();
dataModel model(data);
qDebug() << model.rowCount();
QListView list;
list.setModel(&model);
songsListDelegate *del = new songsListDelegate;
list.setItemDelegate(del);
list.show();
return app.exec();
}
示例10: enterKey
void tst_QItemDelegate::enterKey()
{
QFETCH(WidgetType, widget);
QFETCH(int, key);
QFETCH(bool, expectedFocus);
QStandardItemModel model;
model.appendRow(new QStandardItem());
QListView view;
view.setModel(&model);
view.show();
QApplication::setActiveWindow(&view);
view.setFocus();
QTest::qWait(30);
struct TestDelegate : public QItemDelegate
{
WidgetType widgetType;
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& /*option*/, const QModelIndex& /*index*/) const
{
QWidget *editor = 0;
switch(widgetType) {
case LineEdit:
editor = new QLineEdit(parent);
break;
case TextEdit:
editor = new QTextEdit(parent);
break;
case PlainTextEdit:
editor = new QPlainTextEdit(parent);
break;
}
editor->setObjectName(QString::fromLatin1("TheEditor"));
return editor;
}
} delegate;
delegate.widgetType = widget;
view.setItemDelegate(&delegate);
QModelIndex index = model.index(0, 0);
view.setCurrentIndex(index); // the editor will only selectAll on the current index
view.edit(index);
QTest::qWait(30);
QList<QWidget*> lineEditors = qFindChildren<QWidget *>(view.viewport(), QString::fromLatin1("TheEditor"));
QCOMPARE(lineEditors.count(), 1);
QPointer<QWidget> editor = lineEditors.at(0);
QCOMPARE(editor->hasFocus(), true);
QTest::keyClick(editor, Qt::Key(key));
QApplication::processEvents();
// The line edit has already been destroyed, so avoid that case.
if (widget == TextEdit || widget == PlainTextEdit) {
QVERIFY(!editor.isNull());
QCOMPARE(editor && editor->hasFocus(), expectedFocus);
}
}