2

クリック可能なハイパーリンクを表示したい ClutterText オブジェクトがあります。ClutterText には Pango マークアップを使用するオプションがありますが、明らかにハイパーリンクをマークする方法ではありません。

これを行う簡単な方法はありますか?

4

1 に答える 1

3

MeeGoネットブックのユーザーエクスペリエンスには、URLの強調表示とクリックを可能にするClutterTextサブクラスがありました。

https://github.com/meego-netbook-ux/meego-panel-myzone/blob/master/penge/penge-clickable-label.c

基本は次のとおりです。

  • テキスト内のURLの境界を検出します(通常、正規表現を使用します)。
  • PangoAttributesを使用してスタイル(下線+色)を変更します。
  • button-release-eventシグナル、または他の動作を許可する場合はキャプチャされたイベントシグナルを使用して、ユーザーがClutterTextのPangoLayout内でクリックした場所を検出します。
  • ボタンイベントの座標がリンクの境界内にある場合、成功:シグナルを送信するか、関数を呼び出してURLを処理します。

イベントを処理する場合は、ClutterTextアクターをリアクティブにすることを忘れないでください。:-)

于 2011-07-28T08:20:24.183 に答える