Qtの開発経験のヒント51-60

  1. 一定時間内のHTTPポストデータ、データ列がある場合&伝送接続は、中国の歪みを解析し、中国のURLトランスコーディングする必要があります。
QString content = "测试中文";
QString note = content.toUtf8().toPercentEncoding();
  1. Qtのデフォルトは、このようなフォントファイルを追加するなど、大きなリソースファイルを、サポートしていない、あなたはプロファイルを有効にする必要があります。
    CONFIG + = resources_big

  2. Qtの継承QWidgetの後、スタイルシートが機能しない、3つのソリューションがあります。高度の方法をお勧めします。
    方法の一つ:this-> setAttributeメソッド(Qtの:: WA_StyledBackground、プロパティを設定し 、真の);
    方法2:QFrameの継承に、QFrameはpaintEvent機能は、スタイルシートを使用して解析され、描画されたときに達成するために行われている来るので。
    方法3:QWidgetのpaintEvent機能を再実装する場合、使用が描くQStylePainter。
void myclass::paintEvent(QPaintEvent *)
{
    QStyleOption o;
    o.initFrom(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
}
  1. 時にはインターフェースプラス春で、動的ばね張力に対応する戦略を変更し、対応する方法がchangeSizeで、多くの人々は、セットのfind 1のの始まりを使用することを選択します。

  2. プロセスにおけるqfileにより使用は、ファイルなどが5msのログ出力間隔、大規模なIO性能のボトルネックとして、近くに頻繁にして、ファイルを書かれているを開くにはお勧めしません、このような状況は、あなたがそのようなデストラクタとして時間を待って、近くにファイル開かないことをお勧めします必要性がクローズファイルをログファイルを再変換する場合や、日付が変更されました。それ以外の場合は、短い時間では、開閉多数のファイルは、大きなファイルのカードは非常に遅くなります。

  3. では、多くのネットワークアプリケーションが接続を維持するためにカスタムハートビートパケットを必要とし、パワーダウンあるいは近い不法プログラム、お互いを認識しない、タイムアウト検出が必要であるが、一部のハートビートプロトコルが用意されていません、キープアライブシステム層を有効にするには、この時間が必要で、このプログラムは、この方法では、TCP接続に適用されます。
int fd = tcpSocket->socketDescriptor();
int keepAlive = 1;      //开启keepalive属性,缺省值:0(关闭)
int keepIdle = 5;       //如果在5秒内没有任何数据交互,则进行探测,缺省值:7200(s)
int keepInterval = 2;   //探测时发探测包的时间间隔为2秒,缺省值:75(s)
int keepCount = 2;      //探测重试的次数,全部超时则认定连接失效,缺省值:9(次)
setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));
setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, (void *)&keepIdle, sizeof(keepIdle));
setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval));
setsockopt(fd, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount));
  1. パッケージ化が求められた場合はプラットフォームは、一般的には良いの後に間違った理由のpluginsディレクトリをパッケージまたはパッケージされていないので、それはQtのプラットフォームプラグインを見つけるか、読み込むことができませんでしたので、このアプリケーションを開始できませんでした。

  2. Qtの新しいバージョンは、現在、他の言語に中国語の翻訳をサポートしていますが、非常に不規則な、TMDが教え誰かわからない、TRは英語に含まれることが意図されているが、非常にお勧めtrは、中国を含め、その後、中国語など他の言語に翻訳今は翻訳ニーズ、無効TR、TR必要性のオーバーヘッドがない場合、初心者の多くは、TRを乱用し、Qtのデフォルトは、彼が、翻訳するために余分な特別な処理を必要とすると思うだろう。

  3. QtとQtのCreatorを愚かに伝えることができなかった多くの人々が、結果は多くの場合、Qtの創造主のバージョンはオーバー、QtのCreatorはQtは開発環境IDEを統合使って書かれているのQtのバージョンを作ったもの尋ねる、Visual Studioと最初の宇宙、彼がかもしれMSVCコンパイラ、およびmingwのをコンパイルすることができる、また、GCCのものであってもよい。(Qtの対応WINはQtのCeratorはMSVCで付属のインストール環境を統合しました)カスタムプラグインはQtの創造主に統合する必要がある場合、我々は、プラグインの動的ライブラリファイル(DLLまたはので、他の文書が)コンパイラとQtとQt Creatorをバージョン、およびまったく同じジョブの中央値バージョンに対応することを確認する必要がありますか基本的な可能性は低いが、それに統合されています。特に注目すべきなのはそのうちのいくつかは、全く同じで、オープンを見て彼らの目を保つ必要があり、統合された環境がまったく同じではないかもしれないパッケージのバージョンをインストールQtのバージョンのQtとQt Creatorをです。

  4. 単独の関数として書かれた2つのコードの上に同じプロセスは、推奨されます。コード仕様(OK)、(OK == false)の場合ならば書き込まれる(OK == TRUE)場合(123 ==)前面に、値が、別の例であれば(== 123)が書き込まれる場合など、可能な限り合理化書き込みへ(OK!)の場合のように。

おすすめ

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