qt5_snippets_basics.html projektmanagement.html


Snippets from/for Qt5.3 & 4.8

Nur ein paar wichtige Klassen und Methoden, die ich immer mal brauche - hier als Erinnerungsstütze oder die mir bei der

Durchsicht der Qt5.2 Dokumentation interessant erschienen (auch noch recht unsortiert) ...

QPlainTextEdit

Example

QPlainTextEdit* pView = new QPlainTextEdit( "TextEdit" );

QString sSrc( "Input for the text edit ..." )

pView->setPlainText( sSrc );

pView->appendHtml( "html..." );

pView->appendPlainText( "add more text ..." );

//QString sContentOfTextEdit( pView->toPlainText() );


void QPlainTextEdit::setExtraSelections(const QList & selections)

void QPlainTextEdit::setDocument(QTextDocument * document)

see also QTextCursor, QTextTable (TODO)...


QWebInspector

Der Code öffnet ein Analyse-Werkzeug von Qt ...


Hiermit werde ich mal noch mehr herum experimentieren - hier finden sich irgendwelche CSS und

Javascript Profiling und Analyse-Einstellungen ...


QWebView

QWebView, QWebPage und QWebFrame(s) ...


QWebPage & QWebFrame

Sollte ich mal ausprobieren, sieht interessant aus ...


Ebenfalls aus der Qt5.2 Dokumentation - findText()-Methode, die nicht fehlen darf ...


QClipboard

Example

QClipboard *clipboard = QApplication::clipboard();

QString originalText = clipboard->text();

...

clipboard->setText(newText);


Example

void DropArea::paste()

{

const QClipboard *clipboard = QApplication::clipboard();

const QMimeData *mimeData = clipboard->mimeData();

if (mimeData->hasImage())setPixmap(qvariant_cast(mimeData->imageData()));

else if (mimeData->hasHtml())

{

setText(mimeData->html());

setTextFormat(Qt::RichText);

}

else if (mimeData->hasText())

{

setText(mimeData->text());

setTextFormat(Qt::PlainText);

}

else setText(tr("Cannot display data"));

}


QCompleter

QStringList l;

l << "alpha" << "omega" << "omicron" << "zeta";

QLineEdit *lineEdit = new QLineEdit(this);

QCompleter *completer = new QCompleter(l, this);

completer->setCaseSensitivity(Qt::CaseInsensitive);

lineEdit->setCompleter(completer);


QWebDatabase

QWebDatabase bietet Zugriff auf HTML 5 Datenbanken, die mit JavaScript erstellt sind. HTML 5 Standard umfasst jetzt eben Unterstützung von SQL Datenbanken von Web Sites, die erzeugt und Zugriff auf einen lokalen Computer mittels JavaScript haben QWebDatabase ist die Qt-basierte C++ Schnittstelle zu diesen Datenbanken. Hier ist auch noch QWebSecurityOrigin::databases() relevant. Das WebKit verwendet SQLite für diese lokalen SQL Datenbanken.

Sollte ich mir vielleicht auch mal ansehen, aber ist für mich wohl nicht ganz so wichtig ...


QWebHistory, QWebHistoryInterface & QWebHistoryItem

QWebHistoryItem repräsentiert einen Eintrag aus der History ...

Die relevanten Methoden von QWebHistory. QDataStream mittels >>-Operator speichern und mit dem <<-Operator laden.

voidback()...
QWebHistoryItemcurrentItem() const...
QWebHistoryItemitemAt( int i ) const...
QWebHistoryItembackItem() const...
QWebHistoryItemforwardItem() const...
QList< QWebHistoryItem >items() const...
QList< QWebHistoryItem >backItems( int maxItems ) const...
QList< QWebHistoryItem >forwardItems( int maxItems ) const...
voidgoToItem( const QWebHistoryItem& item )...
voidcanGoBack() const...
boolcanGoForward() const...
voidclear()...
intcount() const...
intmaximumItemCount() const...
voidsetMaximumItemCount( int count )...

QWebHistoryItem repräsentiert einen Eintrag aus der History:

title()Titel der Seite
url()Lokation der Seite
originalUrl()URL für den Zugriff auf die Seite
lastVisited()Datum und Zeit des letzten Benutzeraufrufs der Seite
icon()assoziertes Icon, welches vom Server für die Seite geliefert wurde
userData()Benutzerspezifische Daten, die mit dem Verlaufseintrag gespeichert wurden

QWebHitTestResult

Sehr hilfreich - liefert überladenes Kontextmenü, sofern "QWebHitTestResult r = page()->mainFrame()->hitTestContent( event->pos() );" kein leerer Link ist!

Andernfalls wird das Standard-Kontextmenü (gelber Pfeil) angezeigt.


QWebSecurityOrigin

Security boundary for web sites ...


QWebSettings

AutoLoadImagesenabledBilder automatisch in Web Seiten hochladen.
DnsPrefetchEnableddisabledQt WebKit kann DNS Einträge vorab laden, um die Geschwindigkeit/Leistung zu steigern.
JavascriptEnabledenabledEinstellung für die Ausführbarkeit von Javascript Code.
JavaEnableddisabledEinstellung für die Ausführbarkeit von Java Applets (aktuell sowieso nicht unterstützt).
PluginsEnableddisabledEinstellung für die Ausführbarkeit von Plugins (betrifft nicht application/x-qt-plugin mimetype).
PrivateBrowsingEnableddisabledEinstellung für den Aufzeichnungsmodus von WebKit (Verlauf und Speicherung von Icons).
JavascriptCanOpenWindowsdisabledEinstellung, ob Javascript Code eigene Fenster öffnen kann.
JavascriptCanCloseWindowsdisabledEinstellung, ob Javascript Code Fenster schliessen kann.
DeveloperExtrasEnableddisabledWerkzeuge wie QWebInspector für web site debugging ermöglichen.
SpatialNavigationEnableddisabledTastenbasierte Navigation über Links auf einer Web Seite ermöglichen.
LinksIncludedInFocusChainenabledEinstellung für die Keyboard Focus Chain.
ZoomTextOnlydisabledZoomfaktor nur auf den Text anwenden oder für den gesamten Inhalt.
PrintElementBackgroundsenabledEinstellung, ob drucken mit Hintergrundfarbe erfolgen soll.
OfflineStorageDatabaseEnableddisabledEinstellung für die Verwendung der HTML5 Offline Storage Funktionalität.
OfflineWebApplicationCacheEnableddisabledEinstellung für die Verwendung der HTML5 Application Cache Funktionalität.
LocalStorageEnableddisabledEinstellung für die Verwendung der HTML5 Local Storage Funktionalität.
LocalContentCanAccessRemoteUrlsdisabledSicherheitseinstellung: Lokal geladenes Dokument, darf (oder darf nicht) auf Remote URLs zugreifen (s. auch QWebSecurityOrigin).
LocalContentCanAccessFileUrlsdisabledSicherheitseinstellung: Lokal geladenes Dokument, darf (oder darf nicht) auf lokale URLs zugreifen (s. auch QWebSecurityOrigin).
XSSAuditingEnableddisabledSicherheitseinstellung: Überwachung zur Verhinderung von Cross-Site Scripting Versuchen.
AcceleratedCompositingEnabledenabledIn Konjunktion mit QGraphicsWebView können Animationen beschleunigt werden. CSS ...
TiledBackingStoreEnableddisabled...
FrameFlatteningEnableddisabled...
SiteSpecificQuirksEnableddisabled...
CSSGridLayoutEnableddisabledUnterstützung von CSS 3 Grid Layout Modul.
ScrollAnimatorEnableddisabledAnimiertes Scrollen.
CaretBrowsingEnableddisabledCaret Browsing.
NotificationsEnabledenabledHTML5 Web Notifications.

QWinThumbnailToolButton & QWinThumbnailToolBar

Button in der Thumbnail Toolbar von Windows - könnte ganz brauchbar sein ...

QWinTaskbarProgress und QWinTaskbarButton sind vielleicht noch interessanter - muß ich mal ausprobieren, wo der Unterschied ist!


QCryptographicHash

TODO


QDesktopServices

TODO


QSystemTrayIcon

TODO


QProcess & QProcessEnvironment

Spricht für sich.


QFuture

Links vorwärts und rechts rückwärts.


QFutureSynchronizer.


QFutureWatcher.


QProcessDialog und QFutureWatcher.



QThread

Ausführung des QThreads beginnt mit run(). Standardmässig startet run() die Event Loop durch Aufruf von exec() und führt eine Qt Event Loop innerhalb des Threads aus.

Worker Objekte kann man mit der Methode QObject::moveToThread zum Thread befördern.

Der Code innerhalb des Workers Slot wird dann in einem separaten Thread ausgeführt. Aber, es steht einem frei den Workers Slot mit jedem Signal zu verknüpfen (connect), von jedem Objekt, und in jedem Thread.

Es ist sicher Signale und Slots zwischen verschiedenen Threads zu verknüpfen (connect), dahinter steckt ein Mechanismus mit Namen Queued Connections.


Ein anderer Weg geht über Ableitung von QThread und reimplementieren der run()-Methode. ...

QException

Beispiel aus QT5.2 Dokumentation mit QException und QtConcurrent ...


QStandardPaths

TODO


QDataStream

TODO


QDir, QDirIterator & QDirModel

TODO


QDrag & QMimeData

TODO


QEvent, QEventLoop & QKeyEvent

Überladbare Methoden für QWidget, QDialog und QFrame:

void QWidget::keyPressEvent(QKeyEvent * event) [virtual protected]

void QWidget::keyReleaseEvent(QKeyEvent * event) [virtual protected]


QExplicitlySharedDataPointer, QSharedData & QSharedDataPointer

TODO


QExtensionFactory & QExtensionManager

TODO


QTreeWidget

Beispiel mit QFontDataBase von Qt4.8 aus painting\fontsampler :

QFontDataBase fdb;

treeWidget->setColumnCount( 1 );

treeWidget->setHeaderLabels( QStringList() << tr( "font" ) );

foreach( QString s, fdb.families() )

{

const QStringList l = fdb.styles( s );

if( l.isEmpty() )continue;

QTreeWidgetItem *item = new QTreeWidgetItem( treeWidget );

item->setText( 0, s );

foreach( QString sStyle, l )

{

QTreeWidgetItem* itemStyle = new QTreeWidgetItem( item );

itemStyle->setText( 0, sStyle );

...

}

}


Beispiel zur Iteration durch den Tree.