Qt常識(先留著,有空細看)

alan00000發表於2012-12-03

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()的按鈕將變為預設按鈕--即使用者按Enter鍵時將點選的按鈕)

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()將返回錯誤的時間.


相關文章