概要 QThread クラスを使うと、処理をマルチスレッド化できるぞ 長時間を要する処理を行う場合に、GUIを止めないマルチスレッドは効果的だぞ だが、はまりやすいことがあるので、要注意だ 基本事項 Qt はイベントドリブンなフレームワーク exec() によりイベントループを開始する イベントはイベントループにより処理され、適切なハンドラがコールされる イベントディスパッチはハンドラの処理が終了してから行われるので、処理が長引くとディスパッチ・ハンドラの処理が遅延する ┌──────────┐ │ イベントキュー・ │┌─────────┐┌─────────┐┌─────────┐ │ ディスパッチャ ││ QObject::event() ││ keyPressEvent() ││ paintEvent() │ └────┬─────┘└────┬────┘└────┬────┘└─
QtCreatorでOpenMPを使う方法です。先ず、*.proファイルに以下を追加します。OpenMPのヘッダを使えるようになります。 QMAKE_CXXFLAGS += -fopenmp LIBS += -fopenmp OpenMPは、pthreadGC2.dll というDLLを使うので、debugフォルダ、releaseフォルダに配置しておきます。このDLLはLGPLらしいので、自作アプリに添付しても大丈夫そうです。redhatのプロジェクトから貰ってくるのが一般的っぽいです。 ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/ 実際にコードを書いてみましょう。 #include <omp.h> // OpenMPを使う #include <QElapsedTimer> void paraFunc() { int
OpenTagMemoを制作するに当たって利用したQTabWidgetの機能の使い方を簡単にまとめて見る。 QTabWidgetもwidgetのひとつだから通常のQLabeなどのようにLayoutに登録できる。ということでQTabWidgetを使う場合はQWidgetなどのサブクラス内にメンバとして宣言してやってコンストラクタで初期化する。 初期化は次のような感じtab = new QTabWidget();こんな感じで特に引数などはいらない。QTabWidgetのポインタ変数のtabを初期化できた。次にこれにWidgetを登録する。 例えば簡単な例として2つの異なるQLabelを登録するlabela = new QLabel(tr("tab 1")); labelb = new QLabel(tr("tab 2"));//こんな具合に2つともコンストラクタ内で初期化したとして tab->
^<< 2011.05/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>$
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く