約 949,266 件
https://w.atwiki.jp/jadocs/pages/13.html
TwitterAPI Search API Methods search trends [trends/current] [trends/daily] [trends/weekly]
https://w.atwiki.jp/api_programming/pages/259.html
文字列改行文字列の掛け算 文字列の足し算 文字列のインデックス、スライス 文字のメソッド大文字/小文字 文字の代入 文字列の検索 文字列の置換 文字列から整数へ 数える文字(列)の出現回数を数える 文字列とリスト 文字列 タブルクォートとシングルクォート 文字列中のバックスラッシュ 改行 \n バックスラッシュをそのまま r print(""" line1 line2 line3 """) 文字列の掛け算 "Hi." * 3 文字列の足し算 "Pi" + "thon" 文字列そのままなら "Pi" "thon" 改行を無視 () or \ 文字列のインデックス、スライス word = "python" word[0] # = w 前から1番め word[-1] # = d 後ろから1番め word[0 2] # (0+1)文字目から(2+1)-1文字目まで len(word) # = 4 文字のメソッド s.startswith( My ) My で始まるか? s.find( My ) Myを探す s.rfind( My ) Myを後ろから探す 大文字/小文字 str.upper() str.lower() str.title() # 単語の最初を大文字にする # 判定なら is str.isupper() str.islower() str.istitle() https //note.nkmk.me/python-capitalize-lower-upper-title/ 文字の代入 str.format() a is {} .format( a ) a is {0}{1}{2} .format(1,2,3) a is {2}{1}{0} .format(1,2,3) a is {a}{b}{c} .format(a=1,b=2,c=3) str(x) 6.1.3. 書式指定文字列の文法 3桁なければ0で埋める { 0=3} .format(_int) 文字列の検索 str.rfind(sub[, start[, end]]) 右から探すが、返す「文字の位置」は左から数える str.rfind 文字列の置換 str.replace("A","B") 4. 組み込み型 str.replace() — Python 3.6.5 ドキュメント 文字列から整数へ int(str) 失敗すると ValueError を返すので try int(str) error ValueError # Error処理 で処理する。 もしくは str.isnumeric() で数値として見ることができるかどうか判定して、できるなら変換する。 Pythonで文字列が数字か英字か英数字か判定・確認 - note.nkmk.me 数える 単純に文字数は、長さ、と考える len(s) 文字(列)の出現回数を数える s.count( t ) str.count(sub[, start[, end]] str.count(...) 文字列とリスト 文字列をそのままリストのように扱える。 s = "hello" s[0 3] # hel ただし、「変更のできないリスト」なので、逆順に並べたりはできない。リストに変換させて、reversed()で逆順にする s_l = reversed(list(s)) https //note.nkmk.me/python-reverse-reversed/ ただし、そのままでは文字列として「出力」されないので、.join() で結合する s = "".join(s) https //qiita.com/HajimeKawahara/items/02c288667f0a893e8761#%E6%96%87%E5%AD%97%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AE%E7%B5%90%E5%90%88%E3%81%A8%E5%88%86%E5%89%B2
https://w.atwiki.jp/tapirkoushiki/pages/16.html
既にTapirファミリーは解散しているため、公式チャットと呼べるかはやや怪しいな立ち位置ではあるが、旧メンバーの交流場所として以下のチャットが稼働していた。 雑カテ同窓チャット(かにチャット) このチャットを利用する際は、雑カテ同窓チャットについてを確認すること ※現在はチャットルームが消滅しているため、興味がある方はコメントまでご連絡ください。 解散時点でこのページに記載されていた公式チャットは以下の4つ このうちメインチャットのみ解散後も長期間残っていたが、2023年3月のかにチャットサービス終了によって消滅したため、現存するチャットルームはない。なお、これ以外にも、Tapirのメンバーが管理するチャットが存在していたことがあるが、それらがTapirの公式チャットとして扱われていたかどうかは未確認。 トモユキの管理するメインチャット(かにチャット)(現在は消滅) 主に作戦会議、雑談に使用する。パスワード制のためメンバー以外の使用は不可能。※パスワードを、リーダーの許可なくメンバーを含む他人に教えるのはルール違反です。 トモユキの管理する交流チャット(かにチャット)(現在は消滅) 以下のURLがその交流チャット http //chat.kanichat.com/chat?roomid=abc6534 このチャットは知恵袋の人なら誰でも使ってよいというもの その名も「雑カテチャット」 ケロッキーが管理する体験用のチャット(ミモラチャット)(現在は消滅) 名前は「テストチャット」 トモユキが管理する違反報告用のチャット(かにチャット)(現在は消滅)
https://w.atwiki.jp/api_programming/pages/123.html
下位ページ Content Drawables, Views, And Layouts Viewのライフサイクル リソースファイルで Layouts と Drawables を定義するリソース Layout を使うレイアウト定義の一例 レイアウトリソースの使用方法 Drawables User Interface Making a user interface toolkit that can adapt to multiple products is hard, but it is even harder in the Garmin ecosystem. The mechanical designs of these products may be very different depending on the use case the product is designed for. As a result, the user interfaces of Garmin devices also vary by product some have physical buttons, some have coordinate touch screens, and some provide up, down, and action buttons. Rather than design a user interface toolkit that adapts to what device the UI is running on, the Connect IQ SDK makes it easier to port the user interface to different products. At the resource compiler level, we include a way to define a page in XML as well as specify page definitions per product. These tools make it easy to support multiple devices with a single app. Drawables, Views, And Layouts Watch faces と apps ではページスタック(page stack)をもっている。ヴュー(View)はページを表すオブジェクトである。ヴューはページスタックにプッシュしたちポップされたりする。まさにスタック。 ヴューはtransitionを使って、ページスタック上で別のヴューと入れ替えたりもできる。 View が画面。画面の構成を定義するのが Layout。Layout の要素として配置されるのが Drawables 、といったところか? 本家のページより抜粋 Viewのライフサイクル widgets と watch-apps では onStart() ← これはAppBase、つまりプログラム本体の関数WatchUi.Viewが取り込まれる前に実行される onLayout()リソースの読み込み。表示よりも前に実行される。 onShow()ヴューがForegroundに来た時に実行される。 onUpdate()ここで描画を実行。drawはここで使う。 onShow()の後、勝手に実行 WatchUI.requestUpdate()を実行しても、onUpdate()が実行される。 onHide() watchfaces と datafields では onLayout() onShow() onUpdate() class View { // ヴューのエントリポイントがonLayout(). // リソースが読み込まれ、レイアウトがセットされる前に呼ばれている。 // @param [Graphics.Dc] dc The drawing context // @return [Boolean] true if handled, false otherwise function onLayout( dc ); // When the View is brought into the foreground, onShow() is called. // @return [Boolean] true if handled, false otherwise function onShow(); // When a View is active, onUpdate() is used to update dynamic content. // This function is called when the View is brought to the foreground. // For widgets and watch-apps it is also called when WatchUi.requestUpdate() // is called. For watchfaces it is called once a minute and for datafields // it is called once a second. If a class that extends View does not // implement this function then any Drawables contained in the View will // automatically be drawn. // @param [Graphics.Dc] dc The drawing context // @return [Boolean] true if handled, false otherwise function onUpdate( dc ); // Before the View is removed from the foreground, onHide() is called. function onHide(); // Use setLayout() to set the layout for the View. If the extending class // does not override onUpdate(), then all Drawables contained in layout // will automatically be drawn by the View. // @param [Array] layout An array of Drawables function setLayout(layout); } 各ヴューはレイアウト(layout)を持っている。 レイアウトとはDrawablesとよばれる描画オブジェクトの集まりで、各Drawableはビューに置かれる。 Drawableはdrawメソッドを通じて、デバイスコンテキストへ描画される。 どんなDrawableを拡張したオブジェクトも描画オブジェクトで、プロパティはpublicになる。 Monkey C は、基本的はdrawablesとしてレイアウトにリソースとしてText, Bitmapを配置できる。 リソースファイルで Layouts と Drawables を定義する リソース Layout と Drawable は「リソース」ファイルとして定義する(することができる、が正しいか)。これにより Monkey C を扱わずとも、特定のデバイス向けのレイアウトを作成することができる。 加えて DrawableList オブジェクトを can also be defined, which are Drawable objects that can draw a number of graphics primitives. Layout を使う XML上でレイアウトを定義する場合、描画オブジェクトをレイアウトタグの中に並べればよい。リストに並べられた描画オブジェクトはMonkey Cの描画オブジェクトに変換され、次々と描画される。そのため、2つ以上の描画オブジェクトがあれば、1つ目を描画した上から2つ目が描画されることになる。 レイアウト定義の一例 resources layout id="MainLayout" drawable id="MainBackground" / label text="Page Heading" x="10" y="5" font="Gfx.FONT_LARGE" color="Gfx.COLOR_BLACK" / label text="Your information goes here." x="10" y="25" font="Gfx.FONT_MEDIUM" color="Gfx.COLOR_DK_GREY" / /layout /resources レイアウトリソースの使用方法 onLayout(dc)内で、setLayout()で登録 onUpdate(dc)内でView.onUpdate(dc)を呼び出す。ViewのonUpdate(dc)を呼び出さないとほっとかれる。 class MainView { function onLayout( dc ) { setLayout( Rez.Layouts.MainLayout( dc ) ); // レイアウトを読み込み } function onUpdate( dc ) { // Call parent’s onUpdate(dc) to redraw the layout View.onUpdate( dc ); // この下に更にアップデートする必要のあるものを記述 } } Layout タグでサポートされる属性 属性 定義 値 初期値 補足 id 紐付けるためのID番号This is used to reference the layout in the Rez module 半角文字で始まる値 NA 必須 Drawables (ビットマップファイル、drawable XML リソース) を drawable タグ を使って、レイアウトの中に含めることができる。 属性 定義 値 初期値 補足 id drawable の id The ID provided here references the drawable defined in the resource XML file 半角文字で始まる値 NA 必須; resource XML file で定義される必要あり Text can also be included in layouts. To inlude text use the label tag, which supports the following attributes 属性 内容 値 初期値 補足 text 表示する文字列 NA An empty string font フォント Graphics font constant or the ID of a user-defined font Graphics.FONT_MEDIUM x 表示X位置 ピクセル値、もしくは center 0 y 表示X位置 ピクセル値、もしくは center 0 justifcation How the text should be justified in relation to the X Y location Graphics text justify constant Graphics.TEXT_JUSTIFY_LEFT color The color of the text Graphics color constant or a 24-bit integer of 0xRRGGBB 形式 The current draw context’s foreground color Drawables Drawable XML resources consist of a list of basic drawables bitmaps and shapes. To create an XML drawable, define a drawable-list in an XML resource file. Both bitmap and shape tags should be be placed as child nodes inside the drawable-list . An example drawable-list resources drawable-list id="Smiley" background="Gfx.COLOR_YELLOW" shape type="circle" x="10" y="10" radius="5" color="Gfx.COLOR_BLACK" / shape type="circle" x="30" y="10" radius="5" color="Gfx.COLOR_BLACK" / bitmap id="mouth" x="15" y="25" filename="../bitmaps/mouth.png" / /drawable-list /resources To use this drawable in code do the following function onUpdate( dc ) { var mySmiley = new Rez.Drawables.Smiley(); mySmiley.draw( dc ); } The drawable-list tag supports the following attributes Attribute Definition Valid Values Default Value Notes id The ID of the drawable Any string that starts with a character NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 width The width of the drawable list. pixel value or fill fill height The height of the drawable list. pixel value of fill fill foreground The color of elements (shapes and text) drawn in this layout Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color background The background color of this layout Graphics color constant or a 24-bit integer of the form 0xRRGGBB Gfx.COLOR_TRANSPARENT The shape tag supports the following attributes Attribute Definition Valid Values Default Value Notes type The type of the shape to be drawn rectangle, ellipse, circle, or polygon NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 points A list of points which defines the polygon x1, y1], [x2, y2], ... , [xN, yN NA Required for polygon; must have at least 3 points width The width of the shape to be drawn pixel value or fill fill Only valid for ellipse and rectangle height The height of the shape to be drawn pixel value or fill fill Only valid for ellipse and rectangle color The color of the shape to be drawn Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color corner_radius The radius of the rounded corners of the rectangle pixel value 0 Only valid for rectangle radius The radius of the circle pixel value 0 Required for circle border_width The width of the border around the shape pixel value 0 Only valid for rectangle, ellipse, and circle border_color The color of the border around the shape Graphics color constant or a 24-bit integer of the form 0xRRGGBB The current draw context’s foreground color Only valid for rectangle, ellipse, and circle The bitmap tag supports the following attributes Attribute Definition Valid Values Default Value Notes id The ID of the drawable Any string that starts with a character NA Required x The X coordinate of the top left corner in relation to the parent element pixel value or center 0 y The Y coordinate of the top left corner in relation to the parent element pixel value or center 0 filename The relative path to the image that should be shown A valid, relative path NA Required Input Handling As if input handling wasn’t already one of the most important and complicated pieces of a UI toolkit, Garmin devices take the complication up a level. Unlike those touchable glowing rectangles that are modern smart phones, Garmin devices come in lots of shapes and sizes. Touch screens are not always ideal for all watch products, so there is a mix of input styles and screen technologies. It’s the job of the UI toolkit to make this coherent to the developer. Input and App Types Not all app types have access to input. Watch faces and data fields cannot handle input, though widgets can receive input (may be limited on some devices) and watch-apps will have the most input capability. Input Delegates The Delegate object is an object that implements a certain interface specific to input handling. Monkey C provides a low level InputDelegate that allows handling of events at a basic level. This is good when the app needs to handle button presses or screen presses in a particular way. module WatchUi { // This class implements basic input handling. A developer needs to override // the events they want to handle. class InputDelegate { // Key event // @param evt KEY_XXX enum value // @return true if handled, false otherwise function onKey( evt ); // Click event // @param evt Event object with click information // @return true if handled, false otherwise function onTap( evt ); // Screen hold event. Sent if user is touching // the screen // @param evt Event object with hold information // @return true if handled, false otherwise function onHold( evt ); // Screen release. Sent after an onHold // @param evt Event object with hold information // @return true if handled, false otherwise function onRelease( evt ); // Screen swipe event // @param evt Event function onSwipe( evt ); } } Behaviors Garmin makes products with a purpose, and that purpose can alter the design of one product line over another. Deciding whether a product has a touch screen or has buttons can depend on the environment in which the user will take. For instance, if the product is intended to be used in water (swimming, canoeing, on a boat), it may not have a touch screen. These decisions make for superior products, but also add to developer frustration due to device fragmentation. Most products will support common behaviors (next page, back a page), but how they are executed by the user may differ based on the available input types. To help with this dilemma, Monkey C exposes events at a behavior level. Behaviors separate high-level intentions from the actual input type—next page versus screen press. The BehaviorDelegate is a super class of InputDelegate and maps its low level inputs to common operations across multiple products. Using the BehaviorDelegate can lead to much more portable code. class BehaviorDelegate extends InputDelegate { // When a next page behavior occurs, onNextPage() is called. // @return [Boolean] true if handled, false otherwise function onNextPage(); // When a previous page behavior occurs, onPreviousPage() is called. // @return [Boolean] true if handled, false otherwise function onPreviousPage(); // When a menu behavior occurs, onMenu() is called. // @return [Boolean] true if handled, false otherwise function onMenu(); // When a back behavior occurs, onBack() is called. // @return [Boolean] true if handled, false otherwise function onBack(); // When a next mode behavior occurs, onNextMode() is called. // @return [Boolean] true if handled, false otherwise function onNextMode(); // When a previous mode behavior occurs, onPreviousMode() is called. // @return [Boolean] true if handled, false otherwise function onPreviousMode(); } Built In Handlers In general, complicated input from users and feedback to users should not be done on a wearable device, but should instead be done via a phone app or web page. However, sometimes the device needs to get some form of user input or provide confirmation to the user. WatchUi provides three widgets to handle input menus, the generic picker, and the number picker (the number picker has been deprecated in favor of the generic picker). Two additional handlers provided by WatchUi can be used to give feedback to the user the confirmation dialog and progress dialog. Menu A menu is a list of options for the user. The options are displayed in a list that matches the device the app is running on. A menu can be defined in the resource XML file using the following format menu id="MainMenu" menu-item id="item_1" Item 1 /menu-item menu-item id="item_2" Item 2 /menu-item /menu The resource compiler will then take this XML and generate a Menu object in the Rez module. In order to use this menu, a developer simply needs to push the menu and a delegate for the menu using Ui.pushView() class MyClass extends Ui.View { function openTheMenu() { Ui.pushView( new Rez.Menus.MainMenu(), new MyMenuDelegate(), Ui.SLIDE_UP ); } } class MyMenuDelegate extends Ui.MenuInputDelegate { function onMenuItem(item) { if ( item == item_1 ) { // Do something here } else if ( item == item_2 ) { // Do something else here } } } Generic Picker The Picker class, along with the PickerDelegate and PickerFactory classes, provides applications with the ability to create onscreen lists of user-selectable objects. A picker consists of one or more choosable objects, a title, a next and previous arrow, and a confirm button. The next and previous arrows and the confirm button are device specific but can be overwritten if desired. Pickers are pushed using WatchUi.pushView(), providing a PickerDelegate for the input delegate. A PickerFactory is required to indicate what should be displayed for each pickable value. Sample picker implementations can be found in the Picker sample project, inside the samples/Picker directory. User Interface [Main components of a generic picker layout] The above image is a representation of the general structure of what a picker should look like on a square screen. Other screen formats should have the same layout with some size differences to account for the screen and button layout. The top red bar represents where the title of the picker is displayed. Up and down arrows to scroll through the available options are placed where the green boxes are. The leftmost blue box is where the last item you selected is shown if the picker has multiple selectable items. The center blue box is the item you are currently selecting. The white box will either be the next selectable item in the list or the button to confirm your selection. Development Interface class Picker extends Toybox.WatchUi.View { // Constructor // @param [Dictionary] options @see Picker#setOptions function initialize( options ); // Set the options for the Picker. // @param [Dictionary] options the options for the Picker // @option options [Drawable] title the title for the Picker. Required. // @option options [Array] pattern an Array of [Object] for the Picker to display. If the Array entry is a PickerFactory then it is presented to the user to make a choice. If it is a Drawable then it is display only. Required. // @option options [Array] defaults an Array of [Number] indicating the starting index for each entry in pattern. Optional. // @option options [Drawable] nextArrow a custom next icon for the Picker. Optional. // @option options [Drawable] previousArrow a custom previous icon for the Picker. Optional. // @option options [Drawable] confirm a custom confirm icon for the Picker. Optional. function setOptions( options ); } class PickerDelegate { // Handle a confirm event from a [Picker] // @param [Array] values The chosen values from the Picker. For [Drawable] entries, null will be returned for that value. function onAccept( values ); // Handle a cancel event from a [Picker] function onCancel(); } class PickerFactory { // Generate a Drawable instance for a given item // @param [Number] item Item index // @param [Boolean] isSelected true if the current item is the selected item, false otherwise // @return [Drawable] object to be rendered function getDrawable( item, isSelected ); // Return a representative value for this item // @param [Number] item Item index // @return [Object] Representative item for the given index function getValue( item ); // Get the number of items in the factory // @return [Number] number of items in the factory function getSize(); } Number Picker - DEPRECATED To allow the user to pick or adjust numerical data, the number picker widget is your best bet. The number picker widget allows for editing or adjusting of common numerical types. Here’s an example of number picker use enum { NUMBER_PICKER_DISTANCE, // A Float in meters NUMBER_PICKER_TIME, // A Duration NUMBER_PICKER_TIME_MIN_SEC, // A Duration NUMBER_PICKER_TIME_OF_DAY, // A Duration representing the number of seconds since midnight NUMBER_PICKER_WEIGHT, // A Float in kilograms NUMBER_PICKER_HEIGHT, // A Float in meters NUMBER_PICKER_CALORIES, // A Number NUMBER_PICKER_BIRTH_YEAR // A Number } class NumberPicker { // Constructor // @param mode An enum value of type NUMBER_PICKER_* // @param initialValue The initial value for the Number Picker, type // depends on mode function initialize( mode, initialValue ); } class NumberPickerDelegate { // When a number is chosen, onNumberPicked() is called, passing the // chosen value. // @param value The chosen number, type depends on the NumberPicker mode function onNumberPicked( value ); } Confirmation Dialog The confirmation dialog provides a simple yes/no dialog. This is useful when presenting a simple selection. enum { CONFIRM_NO, CONFIRM_YES } class Confirmation { // Constructor // @param [String] message A textual confirmation message function initialize( message ); } class ConfirmationDelegate { // When a response is chosen, onResponse() is called, passing // the response of CONFIRM_NO or CONFIRM_YES // @param response The response of the confirmation of CONFIRM_NO or CONFIRM_YES function onResponse( response ); } Progress Bar The progress dialog gives a standard wait dialog. It has two modes—one that shows the completion of some process, and a second that acts a wait timer displaying an indeterminate amount of progress. The look and feel of the progress bar will be device-specific. class ProgressBar { // Constructor // @param [String] displayString The string to display on the progress bar view // @param [Float] startValue The initial value for the progress bar (0-100), null for "busy" function initialize( displayString, startValue ); // Use setProgress() to set the value of the progress bar. // @param [Float] progressValue The value for the progress bar (0-100), null for "busy" function setProgress( progressValue ); // Use setDisplayString() to set the string displayed on the progress bar view. // @param [String] displayString The string to display on the progress bar view function setDisplayString( displayString ); }
https://w.atwiki.jp/tapirkoushiki/pages/56.html
このページは小説『大秘宝Tapir改』についてまとめているページです。関連するwiki内の各ページへはだいたい飛べるようにする予定です。 Pick Up! 2022/10/2 第一章 王国襲撃を公開しました. 『大秘宝Tapir改』とは 2012年、風輪主導で小説『大秘宝Tapir』が執筆されることになった。しかし、風輪のwikiで基本設定が公開されただけで本文が全く公開されないまま彼はTapirファミリーから除名され、企画は事実上頓挫してしまった。 それから9年が経過した2021年、雑カテ同窓チャットにおいてこの小説について話し合った結果、残っている設定資料を土台にケロッキーが改めて小説を執筆することになった。これが『大秘宝Tapir改』である。 『大秘宝Tapir改』は『大秘宝Tapir』(の設定資料)をベースにしつつ、執筆段階での同窓会コミュニティのメンバー状況や将来拡張性を考慮したストーリー展開にカスタマイズした内容で進行する。全八章予定。 あらすじ かつて悪魔を倒した勇者アレンがいたテイパア王国は、アレンが持ち帰ってきた宝玉「大秘宝Tapir」の魔力もあり平和な時が流れていた。そんなある日、大秘宝を狙う悪魔の大魔王トモユキは、幹部格のうとぴあ率いる集団に王国を襲撃させた。テイパア王国側は守護者ヒガシの抵抗も虚しく大秘宝は悪魔たちに持ち去られてしまう。王国の特殊部隊クリスタルファミリー(通称:クリファミ)はヤマト国王から悪魔の拠点攻撃と大秘宝奪還の命令を受ける。優秀な特殊隊員であるケロッキーは、強力な魔法を操る相棒の長宗我部宮内少輔秦元親などともにクリスタルペンギンの指揮の元、戦いの旅に赴くのであった。 ※この物語はフィクションです。実在の人物や団体などとは関係ありません 各章リスト 大秘宝Tapir改予告編 第一章と第二章冒頭部分を簡略化してまとめたもの。 第一章 王国襲撃 2022/10/2公開 第二章 クリスタルファミリー 2022年12月頃公開予定 執筆中 第三章以降も順次更新予定 関連リンク 小説 大秘宝Tapir用ページ(外部リンク) 原作にあたる大秘宝Tapirの設定が残っているページ
https://w.atwiki.jp/api_programming/pages/251.html
前提 GAEのサンプルでつかわれているのがFlaskだったので、このまま使う。 Flaskの簡単な使い方 - Qiita flask の render_template を用いて、htmlファイルを表示する。 htmlファイルを /templates というフォルダをつくって、そこに置く。 render_templates([filename]) from flask import Flask, render_template app = Flask(__name__) # 以下の例では、/(root) のリクエストが来る @app.route( / ) def hello() return render_template("index.html") 静的ファイルの表示 プロジェクト内にフォルダを作ってhtmlファイルを置いても、そのままのURLでは表示できない。(※正しくは、/static フォルダを作ってそこにファイルを置けば表示できる。) 表示するには以下の方法がある。 Flaskで、静的ファイルを置く場所を決める app.yamlで、リクエストURLに対して返すファイルを指定する Flaskで、静的ファイルを置く場所を決める from flask import Flask, render_template app = Flask(__name__, static="www") staticでフォルダを指定する。この場合は /www のフォルダに置いたファイルは、リクエストに対してそのまま表示される。すなわち、wwwフォルダ内に index.html ファイルを置いておけば、 https //hogehoge.appspot.com/www/index.html をそのまま表示できる。 staticのデフォルト値として"static"が指定されている。 app.yaml内に記述する app.yamlファイルに handlers - url /(.*) static_files www/\1 upload www/(.*)} と書くことによって、リクエストに対して、www内のファイルを対応して表示させることができる。 しかしながら、ローカル側でチェックする際にapp.yamlを使うには、Python2.*系を使う必要があり、(dev_appserver.pyを動かすのにPython2を指定される)毎回デプロイをして確認するのはかなり手間。 app.yaml リファレンス handlers 要素 - Google Cloud これから読む 静的ファイルの提供
https://w.atwiki.jp/solidworksapi/pages/16.html
表示 再表示 最大表示 回転1 回転2 イメージ品質 平面表示切替 すべての部品を表示 選択した部品のみ表示 再表示 Sub Refresh() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Dim objModView As SldWorks.ModelView Dim rect As Variant Set rect = Nothing Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Set objModView = objModelDoc.ActiveView Call objModView.GraphicsRedraw(rect) End Sub 上へ 最大表示 Sub FitView() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Call objModelDoc.ViewZoomtofit2 End Sub 上へ 回転1 Const PI As Double = 3.14159265358979 Const PI_Radian As Double = 180 Function Radian(ByVal Degrees As Double) As Double Radian = (PI / PI_Radian) * Degrees End Function Function Degrees(ByVal Radian As Double) As Double Degrees = (PI_Radian / PI) * Radian End Function Sub ViewRotate1() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc 矢印キー操作時の回転角度設定 Call objApp.SetUserPreferenceDoubleValue(swUserPreferenceDoubleValue_e.swViewRotationArrowKeys, Radian(15)) 画面下に向かって回転(矢印キー下と同等) objModelDoc.ViewRotateminusx 画面左に向かって回転(矢印キー左と同等) objModelDoc.ViewRotateminusy 画面上を右に回転(ALT+矢印キー左と同等) objModelDoc.ViewRotateminusz 画面上に向かって回転(矢印キー上と同等) objModelDoc.ViewRotateplusx 画面右に向かって回転(矢印キー右と同等) objModelDoc.ViewRotateplusy 画面上を左に回転(ALT+矢印キー右と同等) objModelDoc.ViewRotateplusz 画面下に向かって90度回転 objModelDoc.ViewRotXMinusNinety 画面上に向かって90度回転 objModelDoc.ViewRotXPlusNinety 画面左に向かって90度回転 objModelDoc.ViewRotYMinusNinety 画面右に向かって90度回転 objModelDoc.ViewRotYPlusNinety End Sub 上へ 回転2 Sub ViewRotate2() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Dim objModView As SldWorks.ModelView Dim OrientationValue As MathTransform Dim dblArray() As Double Dim dblZenithAngle As Double Dim dblAzimuth As Double Dim dblZ_DirectionX As Double Dim dblZ_DirectionY As Double Dim dblZ_DirectionZ As Double Dim dblWork As Double Dim rect As Variant Set rect = Nothing Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Set objModView = objModelDoc.ActiveView Set OrientationValue = objModView.Orientation3 dblArray = OrientationValue.ArrayData 等角投影の設定 方位角(Z軸) dblAzimuth = -45 dblWork = Tan(Radian(30)) 天頂角 dblZenithAngle = -1 * Degrees(Atn(dblWork / Sqr(-dblWork * dblWork + 1))) Z方向(X 右方向=+1 Y 上方向=+1 Z 手前方向=+1) dblZ_DirectionX = Sgn(dblAzimuth) dblZ_DirectionY = Sgn(dblZenithAngle) If dblAzimuth 90 Or dblAzimuth -90 Then dblZ_DirectionZ = -1 ElseIf dblAzimuth 90 And dblAzimuth -90 Then dblZ_DirectionZ = 1 Else dblZ_DirectionZ = 0 End If Z軸角(Z,X,Yの順に設定が優先される) dblArray(6) = Sin(Radian(Abs(dblAzimuth))) * dblZ_DirectionX dblArray(8) = Sin(Radian(Abs(dblZenithAngle))) * dblZ_DirectionZ dblArray(7) = Abs(dblArray(6) * dblArray(8)) * dblZ_DirectionY X軸角 dblArray(0) = dblArray(6) * -1 dblArray(1) = dblArray(7) dblArray(1) = 0 dblArray(2) = dblArray(8) dblArray(2) = 0 Y軸角 dblArray(3) = 0 dblArray(4) = Cos(Radian((dblZenithAngle)) * dblZ_DirectionY * -1) dblArray(5) = dblArray(8) dblArray(5) = 0 OrientationValue.ArrayData = dblArray objModView.Orientation3 = OrientationValue Call objModelDoc.ViewZoomtofit2 Call objModView.GraphicsRedraw(rect) End Sub 上へ イメージ品質 Sub ChangeImageQuality() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Dim objExtension As SldWorks.ModelDocExtension Dim dblCurrent As Double Dim dblMax As Double Dim dblMin As Double Dim dblNew As Double Dim dblUnit As Double Dim intLevel As Integer Const intDivisions As Integer = 4 Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Set objExtension = objModelDoc.Extension 現在のイメージ品質取得 Call objExtension.GetUserPreferenceDoubleValueRange(swUserPreferenceDoubleValue_e.swImageQualityShadedDeviation, dblCurrent, dblMin, dblMax) dblUnit = (dblMax - dblMin) / CDbl(intDivisions) intLevel = ((dblMax - dblCurrent) / dblUnit) + 1 intLevel = Val((InputBox("イメージ品質(1~" (intDivisions + 1) ")", "イメージ品質設定", intLevel))) If intLevel = 1 Then dblNew = dblMax ElseIf intLevel intDivisions Then dblNew = dblMin Else dblNew = dblMax - (dblUnit * (intLevel - 1)) End If イメージ品質設定 Call objExtension.SetUserPreferenceDouble(swImageQualityShadedDeviation, swUserPreferenceOption_e.swDetailingNoOptionSpecified, dblNew) End Sub 上へ 平面表示切替 アクティブなドキュメントの平面表示を切り換える(アイテムの視認性ではなく、実際の表示・非表示を切り換える) Sub ToggleDisplayPlane() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Dim objExtension As SldWorks.ModelDocExtension Dim objFeatureMgr As SldWorks.FeatureManager Dim objFeature As SldWorks.Feature Dim arrayFeatures As Variant Dim varFeature As Variant Dim objSelectionMgr As SldWorks.SelectionMgr Dim objSelectData As SldWorks.SelectData Dim intFirstItemVisible As Integer 平面のタイプネーム Const swTnRefPlane As String = "RefPlane" Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Call objModelDoc.ClearSelection2(True) Set objExtension = objModelDoc.Extension Set objFeatureMgr = objModelDoc.FeatureManager Set objSelectionMgr = objModelDoc.SelectionManager Set objSelectData = objSelectionMgr.CreateSelectData arrayFeatures = objFeatureMgr.GetFeatures(True) intFirstItemVisible = 0 For Each varFeature In arrayFeatures Set objFeature = varFeature If objFeature.GetTypeName2() = swTnRefPlane Then If intFirstItemVisible = 0 Then intFirstItemVisible = objFeature.Visible End If Call objSelectionMgr.AddSelectionListObject(objFeature, objSelectData) End If Next If intFirstItemVisible = swVisibilityState_e.swVisibilityStateHide Then Call objModelDoc.UnBlankRefGeom Else Call objModelDoc.BlankRefGeom End If Call objModelDoc.ClearSelection2(True) End Sub 上へ すべての部品を表示 Sub ShowAllPart() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Dim objConfMgr As SldWorks.ConfigurationManager Dim objConf As SldWorks.Configuration Dim objComponent As SldWorks.Component2 Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Set objConfMgr = objModelDoc.ConfigurationManager Set objConf = objConfMgr.ActiveConfiguration Set objComponent = objConf.GetRootComponent3(True) Call SelectAllComponent(objComponent) Call objModelDoc.ShowComponent2 Call objModelDoc.ClearSelection2(True) End Sub Sub SelectAllComponent(objAssyComponent As SldWorks.Component2, Optional isApend As Boolean = False, Optional isApendSuppressed As Boolean = False) If isApend = False Then Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Call objModelDoc.ClearSelection2(True) End If Dim arrayObjComp As Variant Dim objCompVariant As Variant Dim objComponent As SldWorks.Component2 If isApendSuppressed Or (objAssyComponent.IsSuppressed = False) Then Call objAssyComponent.Select4(True, Nothing, False) arrayObjComp = objAssyComponent.GetChildren() For Each objCompVariant In arrayObjComp Set objComponent = objCompVariant Call SelectAllComponent(objComponent, True, isApendSuppressed) Next End If End Sub 上へ 選択した部品のみ表示 Sub ShowSelectedPartOnly() Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Dim objComponent As SldWorks.Component2 Dim objSelectionMgr As SldWorks.SelectionMgr Dim arraySelectedComponents() As SldWorks.Component2 Dim i As Integer Dim intSelectedCount As Integer Dim intComponentCount As Integer Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Set objSelectionMgr = objModelDoc.SelectionManager intComponentCount = 0 intSelectedCount = objSelectionMgr.GetSelectedObjectCount2(-1) If intSelectedCount 0 Then For i = 1 To intSelectedCount Set objComponent = objSelectionMgr.GetSelectedObjectsComponent3(i, -1) If Not (objComponent Is Nothing) Then intComponentCount = intComponentCount + 1 ReDim Preserve arraySelectedComponents(1 To intComponentCount) Set arraySelectedComponents(intComponentCount) = objComponent End If Next If intComponentCount 0 Then Call objModelDoc.Extension.SelectAll Call objModelDoc.HideComponent2 Call objModelDoc.ClearSelection2(True) For i = 1 To intComponentCount Call SelectAllComponent(arraySelectedComponents(i), True) Next Call objModelDoc.ShowComponent2 Call objModelDoc.ClearSelection2(True) End If End If End Sub Sub SelectAllComponent(objAssyComponent As SldWorks.Component2, Optional isApend As Boolean = False, Optional isApendSuppressed As Boolean = False) If isApend = False Then Dim objApp As SldWorks.SldWorks Dim objModelDoc As SldWorks.ModelDoc2 Set objApp = Application.SldWorks Set objModelDoc = objApp.ActiveDoc Call objModelDoc.ClearSelection2(True) End If Dim arrayObjComp As Variant Dim objCompVariant As Variant Dim objComponent As SldWorks.Component2 If isApendSuppressed Or (objAssyComponent.IsSuppressed = False) Then Call objAssyComponent.Select4(True, Nothing, False) arrayObjComp = objAssyComponent.GetChildren() For Each objCompVariant In arrayObjComp Set objComponent = objCompVariant Call SelectAllComponent(objComponent, True, isApendSuppressed) Next End If End Sub 上へ コメント 名前
https://w.atwiki.jp/api_programming/pages/229.html
Content https //llamalab.com/automate/doc/block/index.html BlocksBlocks Apps App decision App start App start shortcut App clear cache App foreground App installed App kill App kill background App list App notifications enabled App notifications set state App notifications priority get App notifications priority set App notifications visibility get App notifications visibility set AppOp mode set AppOp mode App pick App usage Broadcast decision Broadcast receive Broadcast send [[Google]] Now voice command Plug-in action Plug-in decision Plug-in event Preferred activity Resolve activity Resolve receiver Resolve service [[Service]] start Shell command Shell command superuser Battery power Battery level Device doze mode active Device doze mode set state Device interactive Device keep awake Device reboot Device restart Device shutdown CPU speed get CPU speed set Power save mode enabled Power save mode set state Power source plugged Camera sound Audio device connected Audio player control Audio record Audio record stop Audio stream muted Audio stream set mute Audio volume Audio volume set Bluetooth SCO set state Camera start Flashlight Hotword detected Media playing Media store add Media store remove Media tags read Microphone muted Microphone set mute Ringtone pick Screenshot Sound level Sound play Sound stop Speak Speak stop Speak to file Speakerphone on Speakerphone set state Speech recognition Take picture Tone play Tone stop Vibrate Vibrate stop Video record Video record stop Concurrency Atomic add load Atomic compare store Atomic clear all Atomic load Atomic store Variables give Variables take Connectivity Airplane mode enabled Airplane mode set state Bluetooth device connect Bluetooth device connected Bluetooth device disconnect Bluetooth device pick Bluetooth device scan Bluetooth enabled Bluetooth set state Bluetooth tethering enabled Bluetooth tethering set state Data usage HTTP request Infrared transmit Mobile data enabled Mobile data set state Mobile data network type NFC enabled NFC set state NFC tag scanned NFC tag write Network connected Network throughput Network type Ping Restrict background data enabled Restrict background data set state USB tethering enabled USB tethering set state Wake-on-LAN send Wi-Fi connect Wi-Fi connected Wi-Fi enabled Wi-Fi hotspot enabled Wi-Fi hotspot set state Wi-Fi network scan Wi-Fi network pick Wi-Fi set state Wi-Fi signal strength Content Account generic add Account pick Account sync request Account sync enabled Account sync set state Alarm Alarm add Calendar event add Calendar event get Calendar event query Calendar pick Contact query Contact pick Content changed Content copy Content delete Content insert Content pick Content query Content shared Content update Content view Database modify Database query Timer add Date time Delay Date pick Duration pick Time await Time pick Time window Time zone get File storage FTP delete FTP download FTP list FTP make directory FTP upload File copy File delete File exists File list File make directory File monitor File move File pick File read File write Google Drive delete Google Drive download Google Drive list Google Drive make directory Google Drive share Google Drive upload Storage media mounted Storage space Zip compress Zip extract Flow Failure catch Fiber stop Fiber stopped Flow beginning Flow beginning pick Flow pick Flow start Flow stop Fork Go to Label Log append Subroutine General [[Android]] version Array add Array remove Array set Dictionary put Dictionary remove Expression true For each Variable set Interface Assist request Attention light Car mode enabled Car mode set state Clipboard get Clipboard set Color pick Device docked Device lock Device unlocked Dialog choice Dialog confirm Dialog input Dialog number Dialog web Display on Fingerprint gesture Fullscreen Interact Interact touch Key pressed Keyboard visible Login failed Quick Settings tile show Media button Night mode enabled Night mode set state Notification action Notification cancel Notification channel pick Notification interact Notification posted Notification show Notification snooze Process text selection Process text set Screen lock set state Screen orientation Screen orientation set Toast posted Toast show Wired headset plugged Location Geocoding reverse Geocoding Location at Location get Location mock Location pick Location provider enabled Location provider set state Location show Weather Messaging Cloud message send Cloud message receive Compose MMS Compose SMS Compose e-mail E-mail send Gmail send Gmail unread count MMS send SMS received SMS send SMS sent Sensor Ambient light Ambient temperature Atmospheric pressure Device acceleration Device orientation Magnetic field strength Motion gesture Pedometer Personal activity Proximity Significant device motion Settings CyanogenMod profile CyanogenMod profile set Input method pick Input method set Interruptions Interruptions set Notification policy get Notification policy set Ringer mode Ringer mode set Ringtone get Ringtone set Screen brightness set Screen brightness Screen off timeout set Screen off timeout System language get System language set System property get System setting get System setting set Wallpaper image set Wallpaper live set Telephony Call answer Call end Call incoming Call number Call outgoing Call state Cell signal strength Cell tower near Cell tower pick Dial number Mobile network preferred Mobile network preferred set Mobile operator Mobile service state Subscription pick Ringer silence Roaming USSD request
https://w.atwiki.jp/tamotech/pages/31.html
アノテーション(J2SE 5.0~) アノテーション(J2SE 5.0~)アノテーションとは 標準アノテーション(J2SE5.0) アノテーションの定義 まだようわからんこと アノテーションとは プログラムの動作に影響を与えない注釈(メタデータ)。クラスやメソッド、パッケージ等に付与する。 コメントとの主な違い プログラムでアノテーションを読み取って処理できる。 アノテーションがコンパイラの動作に影響を与える。 標準アノテーション(J2SE5.0) Override Deprecated そのメソッドの使用が推奨されないことを示す。(Javadocの@depricatedと同じ意味を持つ) そのメソッドを使用するとコンパイル時に警告が出る。 SuppressWarning コンパイル時の警告を抑制する。 抑制する警告の種別はアノテーションの文字列配列の引数を渡すことにより指定が可能。 アノテーションの定義 「@interface」でアノテーションの宣言となる。 以下のように型定義の本体が空のアノテーションをマーカーアノテーションという。 public @inteface Myannotation{ } 同じアノテーションをクラス、メンバ変数、メソッド、それぞれに適用できるぽい。 @Myannotation() public class TestMain { @Myannotation() private String var; @Myannotation() public static void main(String[] args) { } } まだようわからんこと 定義したアノテーションに何かしらの機能を持たせるためにはどうすればよいか? 例えば「@Override」のように、オーバーライドしているメソッドでないものに付与するとコンパイルエラーにさせる、とか。
https://w.atwiki.jp/memoprogram/pages/25.html
HCURSOR LoadCursor( HINSTANCEhInstance,//#1 アプリケーションインスタンスのハンドル LPCTSTRlpCursorName//#2 リソース名の文字列またはリソース識別子 ); 引数 #1 hInstance 定義済みマウスカーソルを取得する場合、NULLを指定する。 カスタムマウスカーソルをロードする場合、アプリケーションのインスタンスハンドルを指定する。 #2 lpIconName 定義済みマウスカーソルの場合、以下の識別子を指定する。 IDC_APPSTARTING 標準の矢印カーソルと小さい砂時計カーソル IDC_ARROW 標準の矢印カーソル IDC_CROSS 十字カーソル IDC_HAND Windows 2000:ハンドカーソル IDC_HELP 矢印と疑問符 IDC_IBEAM アイビーム( 縦線)カーソル IDC_ICON バージョンが 4.0 以降(Windows NT 4.0 以降)とマークされたアプリケーションでは使われていません。 IDC_NO 禁止カーソル( 円に左上から右下への斜線) IDC_SIZE バージョンが 4.0 以降(Windows NT 4.0 以降)とマークされたアプリケーションでは使われていません。代わりに IDC_SIZEALL を使ってください。 IDC_SIZEALL 4 方向の矢印カーソル IDC_SIZENESW 右上と左下を指す両方向矢印カーソル IDC_SIZENS 上下を指す両方向矢印カーソル IDC_SIZENWSE 左上と右下を指す両方向矢印カーソル IDC_SIZEWE 左右を指す両方向矢印カーソル IDC_UPARROW 上を指す垂直の矢印カーソル IDC_WAIT 砂時計カーソル 戻り値 新しくロードされたマウスカーソルのハンドルが返る。 失敗した場合NULLが返る。