Qtの開発経験のヒント61-70

  1. 多くの人がここに統一答え(現在のタイムノード2018)、より良いQtの組み込みプラットフォームである尋ねる:+ 335xより安定imx6、RK3288 RK3399、安いと他のジョブのパフォーマンスは、私はちょうど全体の王国H3を使用し、ラズベリーと遊ぶために使用することができますオレンジ派派。

  2. コードのコメントの大きな塊のために、0の#ifとの提案はしていないすべてのコードのセクションの、一緒にコードブロックが含まれ、その後取り消された後、あなたがコードを開きたい次回は、あなたがあれば、再チェックする必要がある//、選択の#endif 0のみ大幅に効率を向上させる、1に変更する必要があり#IFことがあります。

  3. Qtのパッケージのリリース、Qt5のパッケージングツールは、(macdeployqtへのlinuxdeployqt、マックなどでLinuxを)windeployqt後に提供するために、非常に使いやすいアプリケーションをパッケージ化することができる多くの方法がありません以上、私は時々数にバンドル万能薬ではなく、発見されます依存ファイルは、時々、特にQMLの場合と、いくつかのプラグインをパックすることを忘れます、そして、そのようなffmpegの依存プログラムなどのサードパーティのライブラリを、認識しない、対応するライブラリは、自身のコピーを必要とする、究極大法はあなたの実行可能ファイルにありますQtは、インストールディレクトリ下のbinディレクトリにコピーされ、その後、全体のパッケージ一緒に、一つずつ削除コンポーネントは、これまで通常動作に削除されるまで、に依存することはほとんどありません。

  4. 底QElapsedTimerタイマーの処理を用いてQTアニメーションは、そのようなルールベースのアルゴリズムなど、いくつかの指定されたデータを持って終了し、処理を属性。

  5. 円形の境界線の色は、代替的に全く同じ効果を360度の円弧を描くために使用することができる場合、背景色なしのみ図中。
QRect rect(-radius, -radius, radius * 2, radius * 2);
//以下两种方法二选一,其实绘制360度的圆弧=绘制无背景的圆形
painter->drawArc(rect, 0, 360 * 16);
painter->drawEllipse(rect);
  1. クラスの実装ファイルは、ローカル変数を格納するために使用される、プライベートクラスを定義するには、いくつかの小さなプロジェクトをやったときに、そのようなメカニズムを導入する多くの必要はありません、実際には、個人的な勧告を非常​​にあやふやDポインタが表示されない場合、それはコードを削減します複雑さを増す、読書、プロジェクトを受け取った後、初心者には非常に無知な力を見ていきます。

  2. あなたが描くように多くの人々の後、あなたはあなただけの単調な色を設定することができるというブラシを設定し、実際にQPenもブラシを設定することができますので、柔軟性が何回、このようQPenにブラシを設定するなど、知らない改善されます、あなたはグラデーションの様々なを使用することができるなど、グラデーションカラープログレスバーとテキストではなく、単調な色の描画。

  3. 時々これらのコントロールは、発見と直接取引する際には仕事をしないようQTextEdit / QTableWidget / QScrollAreaとしてビューポートを持つ多くのコントロールは、あなたが(そのビューポートを設定する必要があります)仕事のため、そのようなスクロールバー領域透明な背景を設定するなど、あなたはscrollArea-を使用する必要があります>ビューポート() - > setStyleSheet( "背景色:透明;");代わりscrollArea-> setStyleSheet( "QScrollArea {背景色:透明;}")。

  4. マウス移動イベントのMouseMoveは、HoverMoveイベントを使用するには、この時間の必要性を親クラスを識別していないときにマウスが他のコントロールの上に移動したときに時々trueにsetMouseTrackingセットを追跡マウスは、上記のフォーム場合、他のコントロールは必要があります最初のセットのsetAttribute(Qtの:: WA_Hover、真の);

  5. 日付時間QDateTime Qtのパッケージは非常に強力なクラス、日付と時刻をミリ秒と変換日付と時刻の数であってもよい、交換弦することができ、それはまた、1970秒経過時間と日付と互換性がある等であってもよいです。
QDateTime dateTime;
QString dateTime_str = dateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
//从字符串转换为毫秒(需完整的年月日时分秒)
datetime.fromString("2011-09-10 12:07:50:541", "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();
//从字符串转换为秒(需完整的年月日时分秒)
datetime.fromString("2011-09-10 12:07:50:541", "yyyy-MM-dd hh:mm:ss:zzz").toTime_t();
//从毫秒转换到年月日时分秒
datetime.fromMSecsSinceEpoch(1315193829218).toString("yyyy-MM-dd hh:mm:ss:zzz");
//从秒转换到年月日时分秒(若有zzz,则为000)
datetime.fromTime_t(1315193829).toString("yyyy-MM-dd hh:mm:ss[:zzz]");

おすすめ

転載: www.cnblogs.com/feiyangqingyun/p/12056831.html