1 QWidget類有什麼用途?
在Qt應用程式中,QWidget用做工作空間.它是底層視窗,在其上可以放置其他對象,如按鈕等.
2 a.setMainWidget(&mainwindow);語句的意義是什麼?
這段代碼告訴Qt,說明mainwindow對象是程式的主組件.當主組件關閉時,整個程式隨之結束.
(主組件與其他Qt組件的區別是:當主組件終止時,整個程式就運行結束.)
3 我不理解setGeometry()中的參數究竟代表什麼意思?
這一點比較容易混淆.你應該明白,象素(0,0)表示監視器的左上方,而不是我們習慣的左下角.因此,如果你在主視窗中使用setGeometry,setGeometry的第一個參數定義在螢幕的左邊和視窗的左上方之間的象素數.第二個參數定義在螢幕的上邊和視窗的左上方之間的象素數.接下來的兩個參數以象素為單位定義視窗的寬度和高度.一旦你習慣它,這也就不難理解了.
4 為什麼不必調用每個對象的show()函數?
當調用父組件的show()函數時,子組件被自動顯示.
5 為什麼輸入this指標代替父組件?
this指標表示在當前類中還未建立的對象.因此,如果設定this指標作為父組件,父組件將是在後面的main()函數中所要建立的對象.
6 什麼是qApp?
qApp的建立和this指標想法相同.它是一個指向還未建立的QApplication對象(它在main()中建立)的指標.
7 為什麼在main()函數中需要調用a.exec()函數?
在這一行,將程式控制權傳遞給Qt庫.從這裡開始,Qt負責處理使用者互動和其他程式操作.
8 我的編譯器報告傳遞給connect()函數的參數錯誤,這是為什嗎?
connect()函數參數使用對象指標,而不是對象本身.因此,你必須確認所提供的參數是正確的.
9 能否將多個槽串連到一個訊號?
能夠,這是可能的.只需為每個串連調用一次connect()函數.
10在調用connect()函數時,省略槽所屬對象名稱意味著什嗎?
這意味著槽在當前類中定義(也就是說,類是當前所定義類).因此,只能從具有槽的類成員函數中執行這類調用.
11是否能夠將一個訊號串連到其他訊號?如果能,應該怎樣操作?
可以.只需象通常一樣使用connect()函數,如:
connect(button,SINGAL(clicked()),this,SINGAL(anothersignal()));
12檢查是否點擊QPushButton對象使用什麼訊號?
clicked()訊號.(應用QPushButton::setDefault()的按鈕將變為預設按鈕--即使用者按斷行符號鍵時將點擊的按鈕)
13使用Qprinter::setOrientation()函數(向它傳遞Qprinter::Portrait或Qprinter::Landscape)能夠設定方向.
14是否能夠選擇多個檔案?
可以,只要使用QFileDialog::getOpenFiles()函數(注意結尾的s)
15重新編譯Qt非常耗時!有沒有辦法能夠加速這一過程?
不能加速實際編譯.但是,如果你的儲存空間足夠,可以在首次編譯Qt後將.o檔案保留在硬碟上.之後,如果需要重新編譯Qt庫(例如,增加對gif的支援),這一過程將大大加快.當運行 make clean命令時,.o檔案被刪除.因此,如果你有足夠的空間,可以跳過這一步.
16當使用目前時間時,時間將自動調整為程式運行時區的當地時間嗎?
是的,這依賴於電腦的系統時鐘.因此,如果它被設定為當地時間,當調用QTime::getCurrent()時QTime將得到當地時間.這也意味著如果你的系統時鐘設定是錯誤的,QTime::getCurrent()將返回錯誤的時間.
------摘自<<24小時學通Qt編程>>