I tried adding an iconSize() and setIconSize() member to my class, but it didn't seem to have an effect. This doesn't seem to be an overridable method anyway, and should have been defined in the QAbstractItemView class, so I don't know why it's complaining there...
I've tried inheriting a different class as well - seems to also crash in the same way with QListView, but works okay if it inherits QPushButton.
Here's the header file fwcartview.h
#ifndef FWCARTVIEW_H
#define FWCARTVIEW_H
#include <QObject>
#include <QTreeView>
#include <QtDesigner/QDesignerExportWidget>
class QDESIGNER_WIDGET_EXPORT FwCartView
: public QTreeView{
Q_OBJECT
public:
~FwCartView();
};
#endif
#ifndef FWCARTVIEW_H
#define FWCARTVIEW_H
#include <QObject>
#include <QTreeView>
#include <QtDesigner/QDesignerExportWidget>
class QDESIGNER_WIDGET_EXPORT FwCartView : public QTreeView
{
Q_OBJECT
public:
FwCartView(QWidget *parent = 0);
~FwCartView();
};
#endif
To copy to clipboard, switch view to plain text mode
Here's the plugin cpp file fwcartviewplugin.cpp
#include "FwCartView.h"
#include "FwCartViewplugin.h"
#include <QtPlugin>
FwCartViewPlugin
::FwCartViewPlugin(QObject *parent
) initialized = false;
}
if (initialized) {
return;
}
initialized = true;
}
bool FwCartViewPlugin::isInitialized() const {
return initialized;
}
return new FwCartView(parent);
}
QString FwCartViewPlugin
::name() const { return "FwCartView";
}
QString FwCartViewPlugin
::group() const { return "Leapfrog Widgets";
}
QIcon FwCartViewPlugin
::icon() const { }
QString FwCartViewPlugin
::toolTip() const { return "FwCartView";
}
QString FwCartViewPlugin
::whatsThis() const { return "Custom cartridge view widget";
}
bool FwCartViewPlugin::isContainer() const {
return false;
}
QString FwCartViewPlugin
::includeFile() const { return "FwCartView.h";
}
QString FwCartViewPlugin
::domXml() const { return "<widget class=\"FwCartView\" name=\"fwCartView\">\n"
" <property name=\"geometry\">\n"
" <rect>\n"
" <x>0</x>\n"
" <y>0</y>\n"
" <width>100</width>\n"
" <height>25</height>\n"
" </rect>\n"
" </property>\n"
" <property name=\"toolTip\" >\n"
" <string>FwCartView</string>\n"
" </property>\n"
" <property name=\"whatsThis\" >\n"
" <string>Custom cartridge view to be used for "
"each page to be shown in the content pane</string>\n"
" </property>\n"
"</widget>\n";
}
QString FwCartViewPlugin
::codeTemplate() const { return "";
}
Q_EXPORT_PLUGIN2(fwcartviewplugin, FwCartViewPlugin)
#include "FwCartView.h"
#include "FwCartViewplugin.h"
#include <QtPlugin>
FwCartViewPlugin::FwCartViewPlugin(QObject *parent)
: QObject(parent) {
initialized = false;
}
void FwCartViewPlugin::initialize(QDesignerFormEditorInterface *formEditor) {
if (initialized) {
return;
}
initialized = true;
}
bool FwCartViewPlugin::isInitialized() const {
return initialized;
}
QWidget *FwCartViewPlugin::createWidget(QWidget *parent) {
return new FwCartView(parent);
}
QString FwCartViewPlugin::name() const {
return "FwCartView";
}
QString FwCartViewPlugin::group() const {
return "Leapfrog Widgets";
}
QIcon FwCartViewPlugin::icon() const {
return QIcon();
}
QString FwCartViewPlugin::toolTip() const {
return "FwCartView";
}
QString FwCartViewPlugin::whatsThis() const {
return "Custom cartridge view widget";
}
bool FwCartViewPlugin::isContainer() const {
return false;
}
QString FwCartViewPlugin::includeFile() const {
return "FwCartView.h";
}
QString FwCartViewPlugin::domXml() const {
return "<widget class=\"FwCartView\" name=\"fwCartView\">\n"
" <property name=\"geometry\">\n"
" <rect>\n"
" <x>0</x>\n"
" <y>0</y>\n"
" <width>100</width>\n"
" <height>25</height>\n"
" </rect>\n"
" </property>\n"
" <property name=\"toolTip\" >\n"
" <string>FwCartView</string>\n"
" </property>\n"
" <property name=\"whatsThis\" >\n"
" <string>Custom cartridge view to be used for "
"each page to be shown in the content pane</string>\n"
" </property>\n"
"</widget>\n";
}
QString FwCartViewPlugin::codeTemplate() const {
return "";
}
Q_EXPORT_PLUGIN2(fwcartviewplugin, FwCartViewPlugin)
To copy to clipboard, switch view to plain text mode
Here's fwcartview.cpp:
#include "FwCartView.h"
#include <QPainter>
FwCartView
::FwCartView(QWidget *parent
){
setAttribute(Qt::WA_DeleteOnClose, true);
}
FwCartView::~FwCartView()
{
}
#include "FwCartView.h"
#include <QPainter>
FwCartView::FwCartView(QWidget *parent)
: QTreeView(parent)
:QPushButton(parent)
{
setAttribute(Qt::WA_DeleteOnClose, true);
}
FwCartView::~FwCartView()
{
}
To copy to clipboard, switch view to plain text mode
On a somewhat related note, Is there any way to debug designer widgets within QtDesigner? Since they have to be compiled in release mode, I guess the only way is to use qDebug() and look at the output or use QMessageBox's. Seems rather painful, as VS2005 has to be restarted and the plugin dll copied over to the plugin folder, everytime a change is made. Though I guess the widget can be debugged once the app is running, as it can link in the debug version of the designer widget dll...
Bookmarks