TECのオープン欠員のためのプログラマLSIの

2008年2月25日プレスの投稿BLAのBLAのBLAののC / C + +Linuxの · プロフィールコメント

LSIの- TECは、会社の一部の国際的なテレビで有名デジタル関連する研究所のプロジェクトの開発sitemas統合で動作するようにUSPのは、才能です探して。

要件:

  • CやC + +やJava;
  • Sitemasは、Linuxの組み込み;
  • Subversionの。
  • Autotoolsに。

場所:
大学サンパウロ - シティ大学キャンパス

興味のある人は自分の履歴書を送ることができます:
ヒレルのベッチャー<hilel@lsi.usp.br>

研究技術の統合システム
統合システム研究所

サーバーの移行のブログ

2月は23日、2008年で掲示されるブログMySQLの · コメントの表示

ブログを楽しむは、技術的な問題を経ており、私は、サーバー、それを変更するには、ワードプレスのアップグレード版を壊すことを決めた。

ワードプレスのアップグレードの詳細は異なる場合がありますバージョンにバージョンと同じで発見することができますが、サイト。

私は/ワードプレス自体のが、エクスポート古いプロバイダと1つの問題は、私はブログの管理領域をアクセスすることができませんでしたインポートするオプションを使用できます。 さらに、プロバイダいた私が得た応答を私はもはやブログにログインすることが何か1つのアップロードを行う:なし

"...お問い合わせ、ワードプレスの開発者が..."

私がしてライバルに連絡することを決めたと爪を移動...

私が使用passsはかなりシンプルされ、次の:

新しいプロバイダを雇用

私は、いくつかのインターネット検索を、お友達に相談しなかったし、最後にだけフォームに記入され、クレジットカードの番号を報告し、支払いの確認を待ちます。

バックアップ

私は新しいプロバイダの確認を待っていたが、私はブログをバックアップした。 私はたくさんあったとして"ジャンク"がインストールされて、私は記事でデータベースをバックアップすることを決め、ワードプレスの完全にクリーンなバージョンを使用します。

MySQLは私は、そのコマンドラインツールのmysqldumpをの使用をバックアップします。 1つの私の意見で一番クールな機能()のmysqlとそのツールは、リモートそれらを使用しての可能性です。 これは私の肌をsysadminの時代に数回救われました。

コマンドは、単純されました:

  =my.old.mysqlserverユーザー@ホスト:〜$ mysqldumpを-ホスト = my.old.mysqlserver 
              -ユーザ = myuserの-パスワード 
              mybkp.sql -データベース myblogdatabaseの>の mybkp.sql 

-ホスト= my.old.mysqlserver:データベースMySQLとは私の接続するホスト
-ユーザ= myuserは:接続用のユーザを使用して、この。
-パスワードは:プロンプト質問パスワードを。 mypass場合=入力したかった私はパスワードパスワードを-行わ直接 、可能性があります。
Myblogdatabase -データベースは:ブログで私の使用"としてmyblogdatabase'を確認ダンプのデータベース内のすべてのテーブル。
> Mybkp.sql:リダイレクトファイルに出力。

mysqldumpはそれがしたのと同じ状態でデータベースを再作成するすべてのSQLに必要な生成されます。

データの復元

ダンプファイルの先頭で、古いデータベースへの参照をしています。 新しいデータベースを使用すると、ダンプファイルを編集する必要が別の名前がある場合。 これは、コマンドで行うことができますセッド:

  s /` olddatabase `/` newdatabase `/ mybkp.sql > mynewbkp.sqlユーザー@ホスト:〜$ `` sedの/ olddatabaseの/ `` newdatabase / mybkp.sql> mynewbkp.sql 

復元は非常に単純な、mysqlのプロンプト使用している:

  =my.new.mysqlserver --user =myuser --passwordユーザー@ホスト:〜$ mysqlの-ホスト = my.new.mysqlserver -ユーザ = myuserの-パスワード
 mysqlの>は newdatabaseを使用します。
 mysqlの>。  mynewbkp.sql 

このlogamosと私達は、まだ空は、新しい基礎を入力して、古いものから新しいにテーブルとデータを再作成するのSQLのステートメントof fullダンプでfileを実行します。

アップグレードワードプレス

更新ワードの基本的な手順を以下のインストールファイル config.phpをのwp -:内容を移動すると、ダウンロード、解凍したい場所に、編集します。

最後に、ブラウザでファイルを実行する

http://my.blog.root.path/bla/bla/bla/wp-admin/upgrade.php

これで完了です! あなたは管理者のユーザとだけの場所にランダムなパスワードが表示されます。

設定ワード

ISPには、サービスを提供し、彼は通常2つの方法をあなたのサイトの機能にアクセスするため提供しています。 1つは、標準的な方法アドレスとして、ドメインを使用して、他のから変なURLと同じ機能を提供します。 今日は発見理由:DNSプロバイダは、前者では、私がアクセスを妨げることなく奇妙な新しいプロバイダのURLに任命されたが(発作)古いサイトの機能。

Wordpresインストールすると、いかなる試みもコンテンツにアクセスするには、昔のブログにリダイレクトした後。 それから私は、ブログのURLを設定するための2つのオプションがありますことを思い出しました。 それは十分にどこにデータベースにわかっていた。 テーブル名のロジック、wp_optionsテーブルに着いた後。

グラフィカルなツールMySQLクエリブラウザーを使用して、私はフィールド'option_valueに'を、フィールド'オプション名'オプション'siteurl'とに対応する変更の家はそのために奇妙なurlを、私は移行時にそれらを使用すると、プラグインやテーマをインストール中に。 とき、すべてが準備ができて、私は、DNSを変更最終的にオプションで元の値に復元されます。 このコマンドラインは次のようになります:

 ; +-----------+---------+-------------+-------------------------+----------+ | option_id | blog_id | option_name | option_value | autoload | +-----------+---------+-------------+-------------------------+----------+ | 1 | 0 | siteurl | http: // mydomain.com / etc | yes | +-----------+---------+-------------+-------------------------+----------+ 1 row in set ( 0.00 sec ) mysql > select * from wp_options where option_value = 'http://mydomain.com/etc' ; +-----------+---------+-------------+-------------------------+----------+ | option_id | blog_id | option_name | option_value | autoload | +-----------+---------+-------------+-------------------------+----------+ | 1 | 0 | siteurl | http: // mydomain.com / etc | yes | | 40 | 0 | home | http: // mydomain.com / etc | yes | +-----------+---------+-------------+-------------------------+----------+ 2 rows in set ( 0.00 sec ) mysql > update wp_options set option_value = 'http://url.estranha.com/etc' where option_value = 'http://mydomain.com/etc' ; Query OK, 2 rows affected ( 0.02 sec ) Rows matched: 2 Changed: 2 Warnings: 0 mysql > 選択*からのwp_options> mysqlの 1を制限する。+-----------+---------+-------------+---- ---------------------+----------+ |は +-----をoption_id | blog_id |オプション名| option_valueに|オートロード| ------+---------+-------------+------------------- ------+----------+ | 1 | 0 | siteurl |はhttp:// mydomain.com の/ etc | はい | +-----------+ ---------+-------------+-------------------------+行でセット 1 ----------+(0.00秒) を選択*からwp_options> mysqlのWHERE'option_valueに= http://mydomain.com/etc'; +--------- --+---------+-------------+----------------------- --+----------+ |は +-----------+---------+--をoption_id | blog_id |オプション名| option_valueに|オートロード| -----------+-------------------------+----------+ | |ホーム|のhttp:// mydomain.com の/ etc | はい | +-----------+ のhttp:// mydomain.com の/ etc | はい | | 40 | 0 1 | 0 | siteurl | ---------+-------------+-------------------------+ 行セット 2 ----------+(0.00)mysql の>更新wp_options 9月 option_valueに='http://url.estranha.com/etc'のWHERE option_valueに='http://mydomain.comの/ etc';クエリ)[OK]2影響を受けた行(0.02マッチ列:2が変更されました:2警告:0 mysqlの> 

最初のSQLコマンドは、テーブルのフィールドは、同一のURLを、第3、最終的にアップグレードしなければならなかったのオプション選択する2番目のを知っていた。 その後、ブログは既に正しい仕事用のアドレス、および指している戻り値は、ウェブサイトを通じて、通常行うことができます。

結論

移行は、爪のブログ最良の選択肢ではない場合、すべてのデータを失うからです。 私の周りワードプレスとツールの操作のほとんどを知っているので私は、この偉業を達成することができます。 それでも、私はサスペンスの私の瞬間があった。 投稿の家別のバックアップを維持するにもかかわらず、私は方法をコメント、一般的にオプションを維持しなければならなかった。 いくつかの方法では良い私は、スマートするとされたサイトの私の毎週のバックアップを行ってください。

Patxi !!!!!!!!!!!

2月は18日、2008年で掲示されるイベント · コメントの表示を

いくつかのブログは、すでに日常キャンパス党ブラジルとして、私は同じことをしなかった場合、冗長になるが報告されてきたように。 私は可能性はない、と私は、私がここで教えてあげることができなかった理由であるため、実際には、私は。

、グスタボゴンザレス友人を考えると魅力のすばらしいのlinux - 発行のbrの、私は党の使用"にされたもの休暇"とキャンパスで働くボランティアに私は決めたの欠員に適用されます。 私はすでに自主的にフリーソフトウェアのプロジェクトには参加し、物理的にそれが初めて表示されます。

私は連絡、私は(カリキュラムを送信ボランティアのための技術的なレベルで)し、カーニバルは30日、私は電子メールを火曜日の午後にイビラプエラでビエンナーレの建物に出席するため受け取りました。

そこに到着し、私はポルカン山(コロンビア)とパブロとサミラに(スペイン)は、当社のエンジニアになる導入されました。 我々はどこのイベントになるとは、次の日になるように配置さ知っている。 彼らは、約30のボランティアを期待数多く2であった。 そして私は現在も素晴らしい友人、フランチ。

私たちは家の使命と次の日までより多くのボランティアを見つけるために返されます。 逆に、すべての状況のポイントにもかかわらず、私は私の相棒ジェラードの支持を得た。 非常に満足して、私は子供の頃の友人、フェルナンド、リオデジャネイロと呼ばれる彼はサンパウロに自主的なものに来て説得した。 彼は人々は常に自分のポケットの給与を支援する意思があるだけ自主的なものになった。 このdixou私ので、私は私のガールフレンド、ルシアナ、聖霊と呼ばれる幸せと、彼女はここに来る飛行機に搭乗すると確信。

アッシュ2009 - 06/02/2008

私はジェラルドフェルナンドロード午前中に、あなたの袋を維持し、求めるここの近くにイビラプエラに行ったコーヒーpadocaを取る。 そこに到着し、我々は一緒にジェームズとパトリシア(新しい勇敢)とフランチを発見し、仕事に行きました。 ミッションは:テーブルを保持するために、ネットワークケーブル(はい、ネットワークケーブル!!!).の50000メートル以上の50キロを支出 しかし、最大の課題は何のエンジニアが望む理解することがあります。 バベルの謎は、3ウェイハンドシェイクを介して解決されました:彼らは徐々にスペイン語で話し、我々はゆっくりとポルトガル語で反応し、警官が、英語で主張した。 スナップ!

一日の終わりに私たちは空港でルチアナを求める我々はすべてのケーブルを逮捕から疲れ眠りについた。

木曜日 - 07/02/2008

Antes da Tempestade もはや自主現れた。 が30の仕事を行うには6であった。 我々は、ハード、ネットワークインフラストラクチャの準備時間になるようにプッシュするサイレント約束をした。 我々は、トリックを使用して、前日学んだとケーブルを保持するために最後の銀行のサポートチームを調整します。 我々は、5000以上のRJ - 45コネクタをテストします。 この日、我々は時間のトラックを失い始めた。 ここから任意のレポートは、タイムラインを破損している場合があります。 我々の処理では3つの動詞は:食べる、仕事をスリープ状態にされた。 1日のノートでは、これらの手袋の石工を購入考えていた。 彼らは開発者の手を保存 :)

金曜日 - 2008年8月2日

我々は、その言語が困難ではなく、障害になる最初に見た日から。 我々は、より与える/または受信命令、理解し理解されたよりも重要なことを学んだ。

我々は、コネクタをテストするために、継続して一日の終わりに、光ファイバの二千以上メートルと開始される、慎重重いチャンネルとカビ木材の下に保護されます。 繊維の半分が開始された。 締め切りは来ていた。 電圧すべての面で。 我々は、失敗することができませんでした。 我々はこれに自分自身をコミットします。

多くの主張の後、フェルナンドパブロは私たちと非公式potuñolishには、もちろんチャットに向けて出発するように説得!

土曜日 - 09/02/2008

Ninho de Mafagafos 金曜日後の睡眠の4時間は、午前前半繊維を金曜日に発表保護するためにチャネルを配置過ごしたが、これは多くの作業を行った。 大きな問題は、それは時間がある人々のトラフィックがで発売されるには、傷ついたが、それ損傷する恐れがためていた繊維の残りの部分を起動します。 危険にさらされる可能性が彼女は優しくリリースされると保護、またはすべての作業をした。 その瞬間は午後遅く来て、少ない人2セントを支払うことで、我々は非常に迅速に繊維の残りの部分を提供しています。 とはいえ、夜は光ファイバを起動varamos。 ポイントルシアナ、匿名パケットはバルログの巣、支出、すべての組織に最初の繊維を変換後に、1つ1つで、非常にイベントの後に同じの撤退を加速。

日曜日 - 10/02/2008

Jantar テスト、修正、調整および関連機器。 すべては関係なく努力作業する必要があります。 イベントは、次の1日の始まりです。 我々は、仕事までのような時間がこの場所太陽がすでに眠っているので、長さだった。 我々は、イベント中に我々の仕事のシフトを報告した。 6は23:00から作業と午後7時翌日まで。 他のシフトはVanzoliniのスタッフによって保証されると愛情を込めてcampuseirosでイベント中に、[なし設立され、私はここ!!!].それを書くつもり変更

我々は、家庭念頭に置いて1つの目標:睡眠に行きました。 そして、唯一の事は私達が全体の次の日中でした。

月曜日 - 11/02/2008、ビッグデイ

Antes de ser atropelado pela manada de Reporterontes 我々は、イベントで正式オープン直前に到着した。 私は、上で実行されてほぼReporterontes狂乱の私達の文化観光部長官の同行の群れに踏み潰さの栄誉を得た。 私は、サイはより洗練されていると思います。 彼らとは異なり、首相は友好的、丁寧だった。 例は続いていない。

Abertura do Campus PArty Brasil 2008

そこから、我々は夜を働いたとイベント日を使用してみました。 睡眠? "睡眠は弱虫です!"それが私たちのコロンビアの友人のため失望の原因:"ブラジルは人間ではない!"、彼らの言葉...

伝統的な範囲:

月曜日火曜日水曜日木曜日金曜日

除外キーワード

登録時に、人々食事制限していたのは別の食べ物を約束したが。 私にとっては食べ物がいいが、ほぼすべての肉があったので、多くのベジタリアンは当然不満を、応答の嘲笑の笑顔を受け取った。 私が見てきました。 残念。 最悪のは、あることに幸運を充電食品を販売唯一の場所。 強制参加者はサンドイッチを食べて、公園を残してしてセキュリティで引っかかってしまう。 それは残念ですね。/ひどい話ですね。/何ともお気の毒です。

Sobras de brindes sendo recolhidas, com conteúdo descartado à esquerda トロフィー"メイドウィーク"通信会社、イベントのメインスポンサーに行くのがイベントで他のすべての企業とは異なり、バックパックの宣伝いっぱいボランティアを与えることを拒否した。 最もばかげたは言い訳されました:

"ボランティアはバックパックを作成することはありません。 バックパックの加入者を払ってです。"

さて、大丈夫、彼らは、右カウントされるでしょうか? 間違っている。 人日曜日の午後に集まっていたまま、多くの。 停止のすべて。 私はボランティアとして、実行遠くから友達を連れ、私たち自身のポケットから、同社の広告されたネットワークインフラを構築するための描画。 それから私は、私が"権利"乾杯をすることを知っている聞いています。 まず、ボランティアがあった。 私たちは喜んで行きました。 無料。 なければ何の見返りも期待。 その後、1時間から、私は、ビジネスの潜在的な顧客と事実バッジは言うとして存在する"テクニカルサポートは、"私は午前中に他の潜在的顧客は、ビジネスのネットワーク使用するように貢献過ごした意味、私がある"右"は同じ会社のマーケティング資料にアクセスするには? まだ半分逆説的?

ポイントは、ここで私は景品をする問題ではない。 問題は、私が潜在的なクライアントは、完全にという理由だけで、彼はイベントで働いていた無視されたとしてです。 それは差別と呼ばれて憲法では。 私はターガス非常によく私を提供して使用するので、ある意味で私は以上$ 10.00かからない景品を取得しないことにより、餓死されず、私は小さな緑色のバックパックを無料で広告をして運んで、気になります。 ポイントは、この会社は、イベントからの主な受益者だったので、私が使用すると、主な理由は、彼は無料でのために働いて感じている。 これらおよびその他のために、私は彼のクライアントは昨年されて停止し、私は後悔していない。

これは良いです:金曜日、家庭ルシアナの袋を拾うには、聖霊に土曜日の早い時間に戻ってくる返されます。 イビラプエラ真夜中の後にエンド。 時いつものようにゲート3を介して入力するとしましたが、、私たちは公園のセキュリティによって、受注しましょうにnotを受信してする主張が停止されたanyone内。 彼らは組織を呼び出すために拒否し、非常に皮肉と失礼です。 詳細:すべての禁止された正式認定とイベントのバッジ、さらに、そこに、他のすべての(約15人)動作するようにした人々は遠い都市から来て、テントでのイベントにスリープ状態に支払った。 睡眠を入力してから防ぐことがか。 外国人スリープ状態に入ることから禁止に持っていた。 携帯電話も建物の中に動作しなかったので、我々は、電話でのトラブルを組織に話していた。 結果:私たちはゲートでcampuseiroは若い女性を同行されるまで禁止された2時間の出口に来て、テーマに興味がある。 彼はすぐに技術支援へと走り、我々のパートナーと警告した。 15分後には"魔法"コマンド誰もが参加できるようにした。 徒歩で。 車は公園の組織(彼は任意の順序を知っていると話す外)、停止され、戻って入場無料に送信すると、車の現在。

もう一つの良いは:ボランティア罰金延期5分青駐車違反の切符を交換することです。 ほら、男は自宅、葉無料イビラプエラで動作するようになる喜んで、青のビーズ全体チケットを購入無料遅延5分はすでに支払われたチケットを更新する作業のために罰金されている。 権利はない、文句を言う。 ボランティアは、駐車場する権利はない...それは柔らかいですか?

宴:ドウシシャクラスアックス。 真剣に、誰も値する! 夜の真ん中で! さらに悪いことに、それが公開された! そして、2つのエディションがあった、公共...

マッドドッグと一緒に写真を取得しないでください。 ルシアナでそれをやった! :(

正ポイント

Radar Saber M60 最大の技術革新は、Microsoftがイベントをして以来:5.5Gbpsの帯域幅が利用可能で、それは信じられないほどの、前例のないイベントにつながるMSNのインストールをcdします。 どのように私はそれをせずに、これまで住んでいるだろうか?

私は(睡眠なしで出席した会談のレベル :) )私は信じて、行のイベントの焦点となった。

群衆のアニメーション。Patxi !!!!!!!!!!!

マッドドッグの存在。

私たちの古い友人レーダーM60号線を知っブラジルの軍してください。

マルコスポンテスで講演。 正直なところ、最も素晴らしいの私が今まで見てきた。 彼は私たちが自分自身の誇りに思って、私たちの努力を感じることができます。 のみ聞いて、彼の目は、何かユニークなに国を表すの意義について話して輝いて見て。 私は言葉で説明することはできません。 これは、スタンディングオベーションにのみスピーカー数分だった。 それは人にお金を払ったの経験だった。

私は最大のプラスポイントは、他の国の人々との交流体験する機会を持っていると思います。 我々は永久に偉大な友達になりました。 我々は、他のもののうち、その言語が障壁として尊重し、良い限りがされることは学ぶ。 責任は、友情とコミットメント、私たちは私たちが通常とは不可能と考えのことを行うことが可能です。 ではなく、ポルトガル語を話す、スペイン語を話すしなかった英語を話すことはなかった。 我々は十分な目標を達成するために私たちを率いて相乗効果を開発することでした何かを話していた。

最も重要なことは、通常、ネットワークインフラストラクチャとサポートでは動作しないにもかかわらず、我々が自分自身を楽しんだ。 もサービスでも、ほとんど何も2週間眠って夜を回す。 私たちは家の宝金より貴重だったキャンパス党を取った。 いいえお金はそれを支払った。

"ちょっと待って下さい"

私はグスタボは、コロンビアから、唯一のポケット辞書でポルトガル語を話すことなく来た言及に失敗することができませんでした。 最初の日、私は私が見て、"辞書の手で考えて告白? しかし、ほとんどの流暢なポルトガル語を話していたこのだけでなく、映画の中でですか?"1週間後に男。 私には作物は、スペインがポルトガルに似ていますが付属してしないで、男はポルトガルリアルタイム話していた! 彼は達成するために主張した。 著しい。 面白いことに、彼を聞いて、"してください、"話さフレーズ彼は辞書内の任意の単語を検索するたびに瞬間を待っていた。

仕上げ

日曜日14:00後、すべての機器を解体し、繊維を収集します。 元に戻すには大したことが簡単です...

夜には、まだ我々は親睦会サンパウロのPerlモンガーズのその日の朝ピアス私たちの外国人の友達を取る。

私はすべての人たちと仕事をしキャンパス党ブラジルのために汗を与えた感謝成功した。

シーンのいくつかの写真は、この時点で指定することがリンク

QT延長以降では、パートII -信号、スロットおよびタイマ

2月は1月、2008年で掲示される+のC / C +Qtの · プロフィールコメント

この記事では私がゲームでQT延長の初心者のための小さなチュートリアルを行うに続く。 今回はどのように我々自身のシグナルとスロットとどのようにタイマーを操作するために作成する方法を紹介します。

ソースコードは、この時点で見つけることができるリンク

サンプルプログラムは、クラスを使用されるタイマーQTimeを1つのは、クラスのQT延長メインと、クラスが表示で表示スタイルを液晶電卓を使用して時間をQLCDNumber 。

QTやタイマ

にQTのタイマのサポートが最も基本的なメソッドを提供するクラスは、QObjectをのご利用からQObjectは::StartTimeの()とQObject ::KillTimer() 最初のメソッドは、一意のIDと2番目のタイマーを返しますこのIDでタイマを停止します。

このためには、しかし、このメカニズムを使用するコードスニペットは、"イベントループ"にする必要があります。 一度タイマー)がタイムアウトを始めてからの時間(DispaterするアプリケーションQTimerEventを処理イベントがされるまでプログラムの流れを混乱させる通常の。

最大タイムアウトは、制限されず、年のタイムアウトのタイマーを作成できますが、最小限の時間はシステムによって異なることができます。 Linuxは、2.6.xでは、この設定している間ウィンドウでVistaの最小タイマが10ミリ秒(デフォルトは4ミリ秒)です。 システムは""黒字を破棄します許可しない場合QTはすべてのイベントを提供し、要求されたが、しようとします。

タイマは、スレッドで使用することができますが、イベントのループ内であることの要件を満たす必要があります。 スレッドは、いつものように別の資料を、値する...

クラスはQTime 機能をいくつかの実装タイマーが高いことができますレベル。 1つは、 QTime:singleShot( )が1回のイベントをトリガします。

記事を読む豊富なドキュメントと繰り返しは、退屈ですが、私を信じて、あなたはQDorDeCabeca多くの保存されます...

シグナルとスロットをもっと上

シグナルとスロットはオブジェクト間の通信に使用される、1つのQT延長の要石の。 このシステムではなく、コールバックイベントを処理するために実装で、プログラミングはより直感的にスロットに信号を接続の概念を使用します。

シグナルとスロットは処理によってているメソッドをクラスのメタオブジェクトコンパイラ(mocの)コンパイルする前にソースされてコードが。 彼らは、標準C + +の一部ではない特別なステートメントをので、モックFazuma解析し、ソースコードがコンパイル生成されます。

シグナルとスロットは、ソースコードの特定の量を実装する任意のクラスのモックのコマンドを実行することによって生成されます。 プログラムの使用はqmakeをを、プログラムの呼び出しをmocのこと、です負担のMakefileにプログラマ透明に。

クラスではスロットをすることができます実装信号、それへのアクセスを必要とするメタオブジェクトシステム。 だから、クラス必要があります継承QObjectを、またはそのサブクラスとマクロが必要Q_OBJECTを地域での宣言プライベート。 完成の準備が、信号は、スロットと宣言された"にセクション信号セクション""[国民が"スロットを]保護|プライベート表示|。

スロットは後にし、明示的に他のように呼び出すことができます他の一般的な方法として定義されて宣言した。 すでに兆候はもう少し繊細であり、しか宣言し、プログラマが定義されます。 その理由は? 構築しようとし末このメッセージは:

 tmpに/ moc_mydisplay.o:関数`MyDisplay:signalPlay()':
 〜/ストップウォッチを/ tmp / moc_mydisplay.cpp:MyDisplay`89:複数の定義:signalPlay()'
 tmpに/ mydisplay.o:〜/ストップウォッチ/ mydisplay.cpp:169:最初にここに定義されて
 collect2:ldは、1の終了ステータスが返さ
確認:** [ストップウォッチはエラー] 1

コード内で次のmoc_mydisplay.cppファイル生成されます:

  / / 0シグナル
 signalPlay ( ) MyDisplayを 無効 :signalPlay ()
 
     activate ( this , & staticMetaObject , 0 , 0 ) ; QMetaObject::) 有効 (これは、&staticMetaObject、0、0;
  

はい、mocのはQTのメソッドにメタコールの定義を持つ信号を生成します。 したがって、記号の本体を定義するQT延長では違法であり、それがresetメソッドのコンパイルエラーを生成します。 mocのは見た目みましょうあなたのための信号の実装した。

接続する

それは良いだけシグナルとスロットを定義している。 我々はどのように相互作用を定義する必要があります。 方法は、これを行うための相続人ごとに存在を介してconnect()メソッドのそれらによって接続しているQObjectを。 この意志mocのはとても(秒)スロット(秒)(秒)と同じパラメータで接続して呼び出しで、それへの呼び出しの結果、信号を実装します。

接続に応じて、信号も同じ値を最後のスロットは、コールバックとして返すことができます。 これは非常に信号いくつかのスロット、したがって、保証の呼び出しのために接続され、安全ではありません。

指定された信号は、2番目の信号に直接接続することができます。 最初の信号) を放出(から2番目の放出() の後相当する信号MOCsをの作成ステップの後などに接続する別の方法呼び出し、その結果では、コールを呼び出して、最初の結果の2番目。

方法は接続する

が発見さ基本的に3と信号の方法には、接続スロット、およびすることは困難場合ひどくバグを正しくすることができます使われていないことのソースです。 の接続形態は、これらのメソッド)(接続渡されるように余分なパラメータ。 それらは:

直接接続 :このスロットは、発行されたと呼ばれる、すぐに信号は、スレッドのシグナルが発行されて。 スロットに直接呼び出し、これは動作します。

キュー接続 :信号が呼び出しに送信さスロットではなく、内部のリストに行くQT延長、信号はすぐに復帰に関係なく、されているスロットと呼ばれるか。 イベントループは、唯一のリストスロットは、オブジェクトのスロットが存在するスレッドで呼び出されるリストを処理します。

自動接続は :これは、接続される既定のタイプの使用型を指定しないときに。 これは、1つの悪の種子""スレッドのため、同じことをプレゼント2つの動作を:場合上に存在する信号とスロットは、直接接続に働くので、それ以外の接続を動作キューです。

キュー接続をブロック :おい!? されただけではなく、3つの? まあ、それは1つの利点は、この資料を読むことです:あなたは、ドキュメントの一貫性を保存する! この接続を除き、キュー接続に似て信号スレッドは信号まで正常に実行されるブロックされます。 だけは非常に慎重に使用すべきシグナルとスロット別のスレッドでに注意してください。 誤用もデッドロックが発生することができます。 するときには、このような何かを参照してください知っているよ:

ユーザー@ホスト:〜/ $をストップウォッチ/ストップウォッチ
 BlockingQueuedConnectionを活性化しながらQtは:デッド検出ロック:送信者は、
 QPushButtonは(0x807e2d8)レシーバMyDisplay(0x8076ac0)です

ことを意味する言葉はどう解決する疑問が"" スレッドをしているオブジェクトはQTのマニュアルをの参照してくださいスレッドには尊敬。

常に信号と、タイマとスレッドのスロットを細心の注意を取る。 これらはQTの主な機能ですが、その誤用のバグは非常見つけることが困難になることができます。 それについてのすべてのドキュメントを参照してください。

ソースダウンする

私たちのサンプルは、2つのクラスとMyDisplayストップウォッチのファイルとメイン政策の構成されます。 主のみQApplicationオブジェクトストップウォッチを作成します。 クラスはMyDisplayプログラムの視覚的な部分を、ボタン、液晶の表示スタイルを持つダイアログの構成を処理します。 ストップウォッチのクラスは、ウィジェットを表示するには、タイマを実装して作成されます。 このアーキテクチャでは、最もelegentではなく、複数のクラスにする面白いことに注意してMyDisplayストップウォッチから継承されます。 しかし、それはプレーを事実上の必要性をシグナルとスロットを使用する必要がなくなります台無しになる。

信号を使用するとスロットが明確に私たちはオブジェクトが外部と通信するになります。 一般的に、クラスはわからないものがそれらのうち。 外部オブジェクトに以内にポインタを渡すと、それはパッケージを傷つけるとコードは以下の一般的なことができます。 我々の例では、より多くの興味深いのは、信号を使用するとスロットストップウォッチ内のオブジェクトのmyDisplay(です))へのイベントおよびストップウォッチオブジェクト(外部Mydisplayからの通信にもなく、この一般またはカプセル化で迷子になる。

私はそれを話すが、別の記事でのQtデザイナ(の助け)、私は、ダイアログ、ボタン、液晶を作成しました。 簡略化コードの後に我々の目的に合うように。 QObjectからQDialogからmyDisplayを継承し、この間接的に継承するには、シグナルとスロットを使用する方法に十分なクラス宣言のプライベートセクションでQ_OBJECTマクロを追加することでした。 その後、私は他の補助的な方法のうちだ:

  公共スロット:
     long ) ; ボイドslotDisplayValue(長い);

 プライベートスロット:
     slotPlay) 無効 (;
     slotStop ボイド ();

 信号:
     signalPlay) 無効 (;
     signalPause ボイド ();
     signalStop ボイド ();
     signalReset ボイド (); 

信号は外部のイベントボタンをクリックに関連する通信を行います。 国民は外から来るダニタイマの値が表示されますがすでにプライベートスロットは、前処理の手順を行います。 したがってクラスは、外部に情報を送信し、外部から、他の側にある知らずに情報を受け取ります。 古いインターフェイス契約で良い。

  公共スロット:
     slotPlay) 無効 (;
     slotPause ボイド ();
     slotStop ボイド ();
     slotReset ボイド ();

 プライベートスロット:
     slotTick ボイド ();

 信号:
     long ) ; ボイドsignalTicks(長い); 

アナログおよび逆ストップウォッチクラスは、クラスMyDisplay信号を受信スロットを実装し、公共のスロットに情報を送信する信号を宣言します。

また、私たちの友人がlerdinhos従うことができますので、10ミリ秒ごとに(起動しますQTimeを実装してビスタ!)、カウンタをインクリメント。 このカウンタは、バックの表示形式やディスプレイに送信されます。

タイマが停止することができます、一時停止し、適切なボタンをクリックして、いつでも再開した。

Finalmentes

ケース自体は多くのコードがあるが、それはタイマーとカスタムシグナルとスロットの建設の最も基本的な使い方を示しています。 彼らは致死トラップになることができるので非常に特別な注意が、しかし、詳細これらのリソースの使用を含む与えられるべきである。

重要なリンク

シグナルとスロット
QTime
QT延長のスレッド
のQT延長ドキュメントオンライン