<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 9.4 一些更深入的話題 下面的這些提示可以讓你創建的對話框看上去更專業. 鍵盤導航 盡量給你的對話框上的控件的標簽增加"&"前導符,在某些平臺(特別明顯的是在windows和GTK+平臺上),這將使得用戶可以通過鍵盤在控件之間移動. 總是給你的對話框提供一個取消操作,最好是使用Escape鍵來執行這個操作.如果你的對話框有一個標識符為wxID_CANCEL的按鈕,那么默認情況下它的處理函數將在用戶按下Escape鍵的時候被執行,因此,如果你有一個單純用來關閉對話框的按鈕,最好將它的標識符定義為wxID_CANCEL. 提供一個默認按鈕(通常為OK按鈕),你可以通過wxButton::SetDefault函數指定一個默認按鈕,這個按鈕的處理函數將在用戶按下回車鍵的時候被調用. 數據和用戶界面分離 為了簡化例子,我們在PersonalRecordDialog中采用了把數據存放在對話框內部的方法.然而,一個更好的設計應該是讓用戶數據和對話框分離,在構造函數中進行賦值操作,這樣的話你就可以更方便的傳遞一組數據給這個對話框的構造函數,以及在用戶確認修改的時候(按下OK按鈕的時候)從對話框獲取一整組數據.這也是大多數標準對話框采用的方法.作為一個練習,你可以使用PersonalRecordData類作為 PersonalRecordDialog的數據成員重寫PersonalRecordDialog的代碼,以使得對話框的構造函數采用 PersonalRecordData的引用作為參數,而對話框的Getdata函數則返回其內部數據的引用. 一般說來,你應該盡可能的將界面功能和非界面功能分開.這通常會讓你的代碼顯得更緊湊.不要害怕增加新的類,它會讓你的設計更優雅,也不要懼怕在類中使用復制或者賦值之類的操作,如果一個對象能夠很容易的被賦值和賦值,應用程序可以少些很多底層的賦值代碼. 除非你的對話框提供了一個類似"Apply"功能的按鈕,否則,在對話框被取消之后,所有內部的數據應該保持原樣.使用數據和界面分離的原則也使得實現這一點變得相對容易,因為通常在這種情況下,你只是操作數據的一份拷貝而不是數據本身. 布局 如果你的對話框看上去好像顯得有些擁擠或者說有些丑陋,可能是因為你沒有給予足夠的空白區間.你可以嘗試單獨使用一個布局控件來增加一個大的邊界區域,就象我們在例子中作的那樣,在一組控件和另外一組控件之間增加空白,或者使用wxStaticBoxSizer和wxStaticLine 將邏輯上處于兩組的控件區隔開.使用wxGridSizer和wxFlexGridSizer布局控件來對齊控件及它們對應的標簽以便它們的位置顯得不那么零亂.在基于布局控件的布局中,還可以使用空白區域來實現對齊.比如,通常OK,Cancel按鈕和Help按鈕應該被設置為右對齊,你可以通過在水平 wxBoxSizer的水平方向上增加一個可以縮放的(縮放因子不為負數的)空白區域,然后再增加這些按鈕,以便在對話框的水平大小發生改變時實現按鈕的右對齊. 盡可能的讓你的對話框的邊框是可以改變大小的,通常windows系統上的對話框的大小是不能被改變的,但是這樣做實在是有些無厘頭. 在一個大的對話框上使用很少的控件通常都令用戶感到沮喪.在wxWidgets下通過布局控件創建可變大小的對話框是非常簡單的事情,你應該盡可能的使用布局控件以便你的對話框可以自適應字體和語言以及對話框大小的改變.當然,你要小心的選擇那些可以隨著對話框大小的改變而改變大小的控件,例如,多行文本框控件就是一個不錯的選擇,它的大小隨著對話框的大小一起增長可以給用戶更多實用的空間,另外,你還可以考慮把增加的空間分給空白區域以實現對齊.注意我們這里說的控件增大,不是只的縮放控件或者是讓控件的文本變的更大,而僅僅是指的增加控件的寬度和高度.參考第7章以得到更多關于布局控件的知識. 如果你發現你的對話框上放置了太多的控件,你應該考慮增加面板,并且使用wxNotebook, wxListbook或wxChoicebook來進行分頁.使用太多菜單來打開很多互不相干的對話框通常是非常令用戶感到不爽的,用分頁控件,用戶自己選擇查看哪個頁面,這樣就顯得方便多了.同時在面板里使用滾動條也是應該被避免的(除非你又充足的原因).這一方面是因為不是所有的平臺都支持滾動控件, 另外一方面,這也會給用戶一個印象:你對控件布局并沒有進行充分的設計.如果你有很多的屬性需要用戶編輯,你可以考慮使用基于wxGrid的屬性編輯器或者其它的第三方控件(參考wxPropertyGrid,在附錄E,"wxWidgets的第三方工具"中有提到這個控件). 美學 標簽的大小寫要保持一致.不要給對話框設置自定義的顏色和字體,這有時候會讓你的用戶感到抓狂而且也使得你的應用程序看上去有些特立獨行 (貶義),和系統當前的風格或者你的應用程序中的其它對話框不一致.要在各個平臺都取得不錯的效果,最好讓wxWidgets自己決定對話框的顏色或者字體.取而代之的,你可以把精力花費在設計一些新穎而緊湊的小圖片上,并且在合適的位置使用wxStaticBitmap控件顯式它. 對話框的替代品 最后,對于那些非模式的解決方案,你應該好好考慮是否要使用一個對話框,也許在應用程序的主窗口中使用TAB控件會是更好的選擇. 盡管我們前面所說的大部分原則都適用于非模式的對框框,但是它們確實有一些不同之處,比如你需要額外考慮布局(通常這種窗口擁有原少于它的大小的控件)以及數據同步(對于非模式窗口來說,它在顯示的時候不能以獨占的方式訪問它的數據了).
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看