本文重點(diǎn)解決如下問(wèn)題:編寫(xiě)軟件的界面有哪幾種方式?通常情形下,界面對(duì)于一個(gè)程序來(lái)說(shuō)非常重要。比爾蓋茨為操作系統(tǒng)加了一個(gè)界面就產(chǎn)生了微軟。這樣的說(shuō)法或許有些夸張,但足以證明了界面對(duì)于提升軟件的友好性、易用性、便捷性的重要作用。一般而言,編寫(xiě)軟件界面的方式包括:拖拽控件方式、編寫(xiě)代碼行的方式、拖拽控件與編寫(xiě)代碼行相結(jié)合的方式。其中,拖拽控件方式是一種可視化地編寫(xiě)界面的方式,所見(jiàn)即所得;編寫(xiě)代碼行的方式是一種非可視化地編寫(xiě)界面的方式,需要運(yùn)行代碼后才可以看到編寫(xiě)的界面的效果。所謂界面編程中的控件是指軟件界面中常用的按鈕、文本框、下拉框等組成軟件界面的基本單元。
1. 拖拽控件方式
這種方式與搭積木非常類似,搭積木時(shí)是將一個(gè)一個(gè)小零件拼接成一個(gè)完整的物體,而拖拽控件編寫(xiě)界面的方式則是將一個(gè)一個(gè)控件由控件區(qū)拖拽到主界面中,然后根據(jù)自己的需求修改控件的顏色、位置、大小等屬性,從而形成一個(gè)最終的軟件界面??丶帽却罘e木時(shí)的零件,最終的軟件界面好比用積木搭建成的物體。該方式是一種可視化編寫(xiě)界面的方式,即拖拽得到的界面效果即為最終的軟件界面效果,如圖 4-6所示,該人臉識(shí)別系統(tǒng)界面的構(gòu)建通過(guò)拖拽的方式將主界面需要的控件由控件區(qū)拖拽到主界面中即可,例如標(biāo)題“人臉識(shí)別系統(tǒng)”通過(guò)將控件區(qū)的靜態(tài)文本框拖拽到主界面,然后修改該靜態(tài)文本框的字符屬性得到最后的效果,而主界面中用于顯示待識(shí)別的人臉照片的界面則通過(guò)拖拽控件區(qū)中的坐標(biāo)控件到主界面中得到(即主界面區(qū)域中的axes1)。

圖 4-6 拖拽控件的方式編寫(xiě)軟件的界面
2. 編寫(xiě)代碼行的方式
該方式的主要思想是:主界面中的每個(gè)控件都通過(guò)編寫(xiě)代碼行來(lái)生成,并通過(guò)代碼行的方式來(lái)控制控件的顏色、位置、大小等屬性,界面的最終效果必須通過(guò)運(yùn)行該代碼查看。該方式是一種非可視化編寫(xiě)界面的方式,要求編程者具有較強(qiáng)的編程能力,對(duì)于希望快速入門(mén)界面編程的初學(xué)者不太適合。通過(guò)代碼行方式編寫(xiě)界面的優(yōu)勢(shì)在于:軟件界面的編寫(xiě)不必像拖拽控件方式編寫(xiě)界面那樣受控件種類有限的約束(即如果你需要的控件在控件區(qū)找不到,就無(wú)法在軟件界面中生成該控件),可以隨心所欲地生成任何控件。這一方式適合對(duì)編寫(xiě)的界面要求較高的場(chǎng)合,能夠?qū)缑娴耐庥^和屬性進(jìn)行精準(zhǔn)控制,也能夠自由靈活地生成界面。
3. 拖拽控件與編寫(xiě)代碼行相結(jié)合的方式
這一方式首先采用拖拽控件的方式快速搭建初始的界面,然后再通過(guò)編寫(xiě)代碼行的方式對(duì)界面中的控件進(jìn)行調(diào)整,最終生成效果滿足要求的界面。該方式結(jié)合了拖拽控件方式和編寫(xiě)代碼行方式編寫(xiě)界面的各自優(yōu)點(diǎn),既能夠保證編寫(xiě)界面的效率和便捷性,又能夠保證編寫(xiě)界面的自由靈活性及高質(zhì)量。
了解軟件的開(kāi)發(fā)工具包(SDK)與集成開(kāi)發(fā)環(huán)境(IDE)這些基本概念是編寫(xiě)軟件的重要基礎(chǔ)。如果想了解上述內(nèi)容,敬請(qǐng)關(guān)注本公眾號(hào)的下一篇文章《軟件的開(kāi)發(fā)工具包(SDK)與集成開(kāi)發(fā)環(huán)境(IDE)》。
關(guān)于人工智能中編程能力和技能訓(xùn)練的更多介紹,可以購(gòu)買(mǎi)《人工智能怎么學(xué)》進(jìn)一步閱讀。

圖書(shū)購(gòu)買(mǎi)方式
京東:https://item.jd.com/13395339.html
當(dāng)當(dāng):http://product.dangdang.com/29469230.html
天貓:https://detail.tmall.com/item_o.htm?id=687374654836
為了讓圖書(shū)惠及更多的讀者,為更多想學(xué)習(xí)人工智能的人提供幫助,經(jīng)過(guò)向出版社申請(qǐng),對(duì)圖書(shū)《人工智能怎么學(xué)》的部分內(nèi)容進(jìn)行改編和連載。圖書(shū)《人工智能怎么學(xué)》的全部?jī)?nèi)容包含了初級(jí)入門(mén)、中階提高以及高級(jí)進(jìn)階三個(gè)級(jí)別的內(nèi)容。連載的內(nèi)容主要是初級(jí)入門(mén)級(jí)別,適合想對(duì)人工智能進(jìn)行快速和高效入門(mén)的讀者,對(duì)于已有一定的人工智能學(xué)習(xí)基礎(chǔ),希望進(jìn)一步進(jìn)階或提高的讀者,則需要購(gòu)買(mǎi)圖書(shū)《人工智能怎么學(xué)》,學(xué)習(xí)中階提高以及高級(jí)進(jìn)階的內(nèi)容。此外,對(duì)于學(xué)習(xí)人工智能感興趣的讀者,也可以加入知識(shí)星球《人工智能怎么學(xué)》,知識(shí)星球是一個(gè)構(gòu)建學(xué)習(xí)社群的平臺(tái),通過(guò)加入《人工智能怎么學(xué)》的社群,你將獲得更多的學(xué)習(xí)資料和課程信息。
與作者互動(dòng)和了解更多信息
想跟作者一起學(xué)習(xí)人工智能和互動(dòng),你可以加入如下社群:
知識(shí)星球:https://t.zsxq.com/0aLkVg0os
QQ群:600587177
想了解更多關(guān)于人工智能學(xué)習(xí)及實(shí)踐的內(nèi)容,請(qǐng)關(guān)注如下媒體:
官方網(wǎng)站:https://bigdatamininglab.github.io
官方微信公眾號(hào):人工智能怎么學(xué)(可掃描下方二維碼或者微信搜索“人工智能怎么學(xué)”添加關(guān)注)
CSDN:https://blog.csdn.net/audyxiao001
參考文獻(xiàn)
Robert C. Martin. 代碼整潔之道(第2版)[M]. 韓磊, 譯. 北京: 中國(guó)工信出版集團(tuán), 人民郵電出版社, 2020.
Herb Sutter, Andrei Alexandrescu. C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐[M]. 劉基誠(chéng), 譯. 北京: 人民郵電出版社, 2016.
楊冠寶. 阿里巴巴Java開(kāi)發(fā)手冊(cè)[M]. 北京: 電子工業(yè)出版社, 2020.
James Gosling et al. The Java Language Specification:Java SE 8 Edition[M]. Upper Saddle River: Addison-Wesley, 2014.
老九君. C++的發(fā)展簡(jiǎn)史[EB/OL]. https://www.cnblogs.com/ljxt/p/11636342.html, 2019-10-08.
翁惠玉. C++程序設(shè)計(jì):思想與方法(第2版)[M]. 北京: 人民郵電出版社, 2012.
譚浩強(qiáng). C++程序設(shè)計(jì)(第3版)[M]. 北京: 清華大學(xué)出版社, 2015.
Siddhartha Rao. Sams Teach Yourself C++ in One Hour a Day (EighthEdition) [M]. Boston: Pearson, 2017.
Bjarne Stroustrup. Programming:Principles andPractice Using C++ (Second Edition) [M]. Crawfordsville: Pearson, 2014.
Bjarne Stroustrup. C++語(yǔ)言設(shè)計(jì)和演化[M]. 裘宗燕, 譯. 北京: 人民郵電出版社, 2020.
Stephen Prata. C++ Primer Plus(中文第6版)[M]. 張海龍 等, 譯. 北京: 人民郵電出版社, 2020.
Stanley B. Lippman, Josée Lajoie,Barbara E. Moo. C++ Primer(中文第5版)[M]. 王剛 等, 譯. 北京: 電子工業(yè)出版社, 2013.
Stanley B. Lippman. Essential C++(中文版)[M]. 侯捷, 譯. 北京: 電子工業(yè)出版社, 2013.
侯捷. STL源碼解析 [M]. 武漢: 華中科技大學(xué)出版社, 2015.
Ivor Horton. C++標(biāo)準(zhǔn)模板庫(kù)編程實(shí)戰(zhàn) [M]. 郭小虎 等, 譯. 北京: 清華大學(xué)出版社, 2017.
Brian W. Kernighan, Rob Pike. 程序設(shè)計(jì)實(shí)踐 [M]. 裘宗燕, 譯. 北京: 機(jī)械工業(yè)出版社, 2003.
Bruce Eckel. C++編程思想(兩卷合訂本)[M]. 劉宗田 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2011.
Scott Meyers. Effective C++:改善程序與設(shè)計(jì)的55個(gè)具體做法(第3版)[M]. 侯捷, 譯. 北京: 電子工業(yè)出版社, 2011.
Scott Meyers. More EffectiveC++:35個(gè)改善編程與設(shè)計(jì)的有效方法[M]. 侯捷, 譯. 北京: 電子工業(yè)出版社, 2020.
Scott Meyers. Effective STL:50條有效使用STL的經(jīng)驗(yàn)[M]. 潘愛(ài)民 等, 譯. 北京: 電子工業(yè)出版社, 2013.
陸文周. Qt 5開(kāi)發(fā)及實(shí)例(第4版)[M]. 北京: 電子工業(yè)出版社, 2019.
王維波. Qt 5.9 C++開(kāi)發(fā)指南 [M]. 北京: 人民郵電出版社, 2018.
馮振, 郭延寧, 呂躍勇. OpenCV 4快速入門(mén) [M]. 北京: 電子工業(yè)出版社, 2020.
ghscarecrow.Java的發(fā)展歷程[EB/OL]. https://blog.csdn.net/ghscarecrow/article/details/82318636, 2018-09-02.
JMCui.Java的發(fā)展歷程[EB/OL]. https://www.cnblogs.com/jmcui/p/11796303.html, 2019-11-07.
明日科技. Java從入門(mén)到精通(第5版)[M]. 北京: 清華大學(xué)出版社, 2019.
Kathy Sierra, Bert Bates. Head First Java (Second Edition) [M].Sebastopol: O’Reilly, 2005.
Bruce Eckel. Java編程思想(第4版)[M]. 陳昊鵬, 譯. 北京: 機(jī)械工業(yè)出版社, 2007.
Cay S. Horstmann. Java核心技術(shù) 卷I:基礎(chǔ)知識(shí)(第11版)[M]. 林琪 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2019.
Cay S. Horstmann. Java核心技術(shù)卷Ⅱ:高級(jí)特性(第11版)[M]. 陳昊鵬, 譯. 北京: 機(jī)械工業(yè)出版社, 2020.
Joshua Bloch. Effective Java(中文第3版)[M]. 俞黎敏, 譯. 北京: 機(jī)械工業(yè)出版社, 2019.
周志明. 深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐(第3版)[M]. 北京: 機(jī)械工業(yè)出版社, 2019.
Brian Goetz. Java并發(fā)編程實(shí)戰(zhàn) [M]. 童云蘭 譯. 北京: 機(jī)械工業(yè)出版社, 2012.
Kamalmeet Singh. Java設(shè)計(jì)模式及實(shí)踐 [M]. 張小坤 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2013.
明日科技. Java Web從入門(mén)到精通(第3版)[M]. 北京: 清華大學(xué)出版社, 2019.
未來(lái)科技.HTML5+CSS3+JavaScript從入門(mén)到精通[M]. 北京: 中國(guó)水利水電出版社, 2017.
Elisabeth Robson, Eric Freeman. Head First HTML與CSS(第2版)[M]. 徐陽(yáng) 等, 譯. 北京: 中國(guó)電力出版社, 2013.
Adam Freeman. HTML5權(quán)威指南 [M]. 謝廷晟 等, 譯. 北京: 人民郵電出版社, 2014.
Eric A. Meyer, Estelle Weyl .CSS權(quán)威指南(第4版)[M]. 安道, 譯. 北京: 中國(guó)電力出版社, 2019.
David Flanagan. JavaScript權(quán)威指南(第7版)[M]. 李松峰, 譯. 北京: 機(jī)械工業(yè)出版社, 2021.
許令波. 深入分析Java Web技術(shù)內(nèi)幕(修訂版)[M]. 北京: 電子工業(yè)出版社, 2014.
Nicholas S. Williams. Java Web高級(jí)編程 [M]. 王肖峰, 譯. 北京: 清華大學(xué)出版社, 2015.
孫衛(wèi)琴. Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解(第3版)[M]. 北京: 電子工業(yè)出版社, 2019.
郭霖. 第一行代碼Android(第3版)[M]. 北京: 人民郵電出版社, 2020.
歐陽(yáng)燊. Android Studio開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到App上線(第2版)[M]. 北京: 清華大學(xué)出版社, 2018.
Dmitry Jemerov, Svetlana Isakova. Kotlin實(shí)戰(zhàn) [M]. 覃宇 等, 譯. 北京: 電子工業(yè)出版社, 2017.
Kristin Marsicano, Brian Gardner, Bill Phillips, Chris Stewart. Android編程權(quán)威指南(第4版)[M]. 王明發(fā), 譯. 北京: 中國(guó)工信出版集團(tuán), 人民郵電出版社, 2021.
劉望舒. Android進(jìn)階之光(第2版)[M]. 北京: 電子工業(yè)出版社, 2021.
鄧凡平. 深入理解Android: Java虛擬機(jī)ART [M]. 北京: 機(jī)械工業(yè)出版社, 2019.
任玉剛. Android開(kāi)發(fā)藝術(shù)探索[M]. 北京: 電子工業(yè)出版社, 2015.
林學(xué)森. 深入理解Android內(nèi)核設(shè)計(jì)思想(上、下冊(cè))(第2版)[M]. 北京: 人民郵電出版社, 2017.
何紅輝, 關(guān)愛(ài)民. Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)(第2版)[M]. 北京: 人民郵電出版社, 2017.
Christian Keur, Aaron Hillegass. iOS編程(第6版)[M]. 王風(fēng)全, 譯. 武漢: 華中科技大學(xué)出版社, 2019.
張益琿. Swift 4從零到精通iOS開(kāi)發(fā)[M]. 北京: 清華大學(xué)出版社, 2019.
Aaron Hillegass, Mikey Ward. Objective-C編程(第2版)[M]. 王蕾 等, 譯. 武漢: 華中科技大學(xué)出版社, 2015.
Matthew Mathias, John Gallagher. Swift編程權(quán)威指南(第2版)[M]. 陳曉亮, 譯. 北京: 人民郵電出版社, 2017.
Kazuki Sakamoto, Tomohiko Furumoto. Objective-C高級(jí)編程:iOS與OS X多線程和內(nèi)存管理[M]. 黎華, 譯. 北京: 人民郵電出版社, 2013.
Erica Sadun. iOS Auto Layout開(kāi)發(fā)秘籍(第2版)[M]. 孟立標(biāo), 譯. 北京: 清華大學(xué)出版社, 2015.
琿少. iOS性能優(yōu)化實(shí)戰(zhàn)[M]. 北京: 電子工業(yè)出版社, 2019.
羅巍. iOS應(yīng)用逆向與安全之道[M]. 北京: 機(jī)械工業(yè)出版社, 2020.
Gaurav Vaish. 高性能iOS應(yīng)用開(kāi)發(fā)[M]. 梁士興 等, 譯. 北京: 人民郵電出版社, 2017.
劉浩. MATLAB R2020a完全自學(xué)一本通 [M]. 北京: 電子工業(yè)出版社, 2020.
天工在線. MATLAB 2020從入門(mén)到精通 [M]. 北京: 中國(guó)水利水電出版社, 2020.
苗志宏, 馬金強(qiáng). MATLAB面向?qū)ο蟪绦蛟O(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2014.
徐瀟, 李遠(yuǎn) . MATLAB面向?qū)ο缶幊獭獜娜腴T(mén)到設(shè)計(jì)模式(第2版)[M]. 北京: 北京航空航天大學(xué)出版社, 2017.
王文峰 等. MATLAB計(jì)算機(jī)視覺(jué)與機(jī)器認(rèn)知[M]. 北京: 北京航空航天大學(xué), 2017.
楊淑瑩, 鄭清春. 模式識(shí)別與智能計(jì)算——MATLAB技術(shù)實(shí)現(xiàn)(第4版)[M]. 北京: 電子工業(yè)版社, 2019.
Eric Matthes. Python編程:從入門(mén)到實(shí)踐(第2版)[M]. 袁國(guó)忠, 譯. 北京: 人民郵電出版社, 2020.
Magnus Lie Hetland. Python基礎(chǔ)教程(第3版)[M]. 袁國(guó)忠, 譯. 北京: 人民郵電出版社, 2018.
Luciano Ramalho. 流暢的Python [M]. 安道 等, 譯. 北京: 人民郵電出版社, 2017.
Brett Slatkin. Effective Python:編寫(xiě)高質(zhì)量Python代碼的90個(gè)有效方法(第2版)[M]. 愛(ài)飛翔, 譯. 北京: 機(jī)械工業(yè)出版社, 2021.
Jan Erik Solem. Python計(jì)算機(jī)視覺(jué)編程[M]. 朱文濤 等, 譯. 北京: 人民郵電出版社, 2014.
Andreas C. Müller. Python機(jī)器學(xué)習(xí)基礎(chǔ)教程[M]. 張亮, 譯. 北京: 人民郵電出版社, 2018.
魏坤. Julia語(yǔ)言程序設(shè)計(jì)[M]. 北京: 機(jī)械工業(yè)出版社, 2018.
郝林. Julia編程基礎(chǔ)(第2版)[M]. 北京: 人民郵電出版社, 2020.
Ben Lauwens, Allen B. Downey. Think Julia [M]. Sebastopol: O’Reilly,2019.
Jalem Raj Rohit. Julia Cookbook [M]. Birmingham: PacktPublishing, 2018.
Zacharias Voulgaris. Julia數(shù)據(jù)科學(xué)應(yīng)用 [M]. 陳光欣, 譯. 北京: 人民郵電出版社, 2018.
朱紅慶. Julia機(jī)器學(xué)習(xí)核心編程:人人可用的高性能科學(xué)計(jì)算[M]. 北京: 電子工業(yè)出版社, 2019.
Norman Matloff. R語(yǔ)言編程藝術(shù)[M]. 陳堰平, 譯. 北京: 機(jī)械工業(yè)出版社, 2013.
Andy Nicholls, Richard Pugh, Aimee Gott. R語(yǔ)言入門(mén)經(jīng)典[M]. 姜佑 等, 譯. 北京: 人民郵電出版社, 2018.
Robert I. Kabacoff. R語(yǔ)言實(shí)戰(zhàn)(第2版)[M]. 王小寧 等, 譯. 北京: 人民郵電出版社, 2016.
Hadley Wickham. 高級(jí)R語(yǔ)言編程指南[M]. 潘文捷 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2020.
Brett Lantz. 機(jī)器學(xué)習(xí)與R語(yǔ)言(第2版)[M]. 李洪成 等, 譯. 北京: 機(jī)械工業(yè)出版社, 2017.
程乾, 劉永, 高博. R語(yǔ)言數(shù)據(jù)分析與可視化從入門(mén)到精通[M]. 北京: 北京大學(xué)出版社, 2020.
周偉明.程序員的十層樓(一、二、三)[J]. 程序員, 2009(6):134-136;2009(7):118-120; 2009(8):134-136.文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-521398.html
注:本文版權(quán)歸作者個(gè)人所有,如需轉(zhuǎn)載請(qǐng)聯(lián)系作者,未經(jīng)授權(quán)不得轉(zhuǎn)載。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-521398.html
到了這里,關(guān)于編寫(xiě)軟件界面的方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!