This HOWTO will explain step by step how to create a KHexEdit component and prepare it for usage.
The following source code tries to create a hexedit component. If the component could not be created, a simple message label is created. Otherwise we set the data and configure it to our needs by using the different interfaces if available.
const char *data = 0;
int dataSize = 0;
if( !bytesEditWidget )
{
bytesEditWidget =
new QLabel( parent,
i18n(
"Could not find a hexedit component.") );
}
else
{
Q_ASSERT( bytesEdit );
bytesEdit->
setData( data, dataSize, -1 );
if( valueColumn )
{
}
if( charColumn )
{
}
if( clipboard )
{
connect( bytesEditWidget, SIGNAL(copyAvailable(bool)), this, SLOT(offerCopy(bool)) );
}
}
An interface for a hex edit editor/viewer for arrays of byte.
virtual void setReadOnly(bool RO=true)=0
sets whether the given array should be handled read only or not.
virtual void setMaxDataSize(int MS)=0
sets the maximal size of the actual byte array.
virtual void setData(char *D, int S, int RS=-1, bool KM=true)=0
hands over to the editor a new byte array.
virtual void setAutoDelete(bool AD=true)=0
sets whether the array should be deleted on the widget's end or if a new array is set.
A simple interface for the access to the char column of a hex edit widget.
virtual void setSubstituteChar(QChar SC)=0
sets the substitute character for "unprintable" chars Default is '.
virtual void setShowUnprintable(bool SU=true)=0
sets whether "unprintable" chars (value<32) should be displayed in the text column with their corresp...
A simple interface for interaction with the clipboard.
Interface for the value displaying column of a hexedit widget.
virtual void setCoding(KCoding C)=0
sets the format of the hex column.
virtual void setByteSpacingWidth(int BSW)=0
sets the spacing between the bytes.
@ BinaryCoding
bit by bit coding
virtual void setGroupSpacingWidth(int GSW)=0
sets the spacing between the groups.
virtual void setNoOfGroupedBytes(int NoGB)=0
sets the numbers of grouped bytes, 0 means no grouping.
QString i18n(const char *text)
CharColumnInterface * charColumnInterface(T *t)
tries to get the charcolumn interface of t
BytesEditInterface * bytesEditInterface(T *t)
tries to get the bytesedit interface of t
ValueColumnInterface * valueColumnInterface(T *t)
tries to get the valuecolumn interface of t
ClipboardInterface * clipboardInterface(T *t)
tries to get the clipboard interface of t
QWidget * createBytesEditWidget(QWidget *Parent=0)
tries to create an instance of a hexedit widget for arrays of chars (char[])
As the KHexEdit interfaces are header-only, you don't need to link against any additional libraries.