原创 8-1 用QPainter繪圖(Painting with QPainter)
要在繪圖設備(paint device,一般是一個控件)上開始繪製,我們只要創建一個QPainter,把繪圖設備指針傳給QPainter對象。例如
原创 6-1 排列窗體上的控件(Laying Out Widgets on a Form)
中英文對照:form(窗體),layout(佈局或者排列,意思是進行窗體上控件的排列的過程,如大小位置等) absolute positionin
原创 7-1 重寫事件處理函數(Reimplementing Event Handlers)
在Qt中,一個事件是QEvent的子類的對象。Qt能夠處理上百種類型的事件,每一類型的事件由一個枚舉值確定。例如,對鼠標點擊事件,QEvent::
原创 5-3 把自定義控件集成到Qt Designer中(Integrating Custom Widgets with Qt Designer)
要想在Qt Designer中使用自定義控件,必須要使Qt Designer能夠知道我們的自定義控件的存在。有兩種方法可以把新自定義控件的信息通知
原创 5-2 從QWidget繼承新類(Subclassing QWidget)
許多Qt的控件或者象HexSpinBox這些自定義控件都是現有的控件的一個組合。由Qt控件組合而成的用戶控件可以用Qt Designer實現: 1
原创 第八章序 2D和3D圖形系統(2D and 3D Graphics)
Qt的2D圖形系統的基礎是類QPainter。QPainter能夠繪製各種幾何圖形(點,線,矩形,橢圓,圓弧,弦,扇形,多段線,貝賽爾曲線),還能
原创 6-6 多文檔界面(Multiple Document Interface)
一個主窗口區域內能夠提供多個文檔的程序稱之爲多文檔程序,或者MDI程序。在Qt中,一個MDI程序是由QWorkspace類實現的,把QWorksp
原创 6-3 分隔控件(Splitters)
中英文對照Splitter handles(分隔條) 一個QSplitter控件中可以包含其他控件,這些控件被一個分隔條隔開,託拽這個分隔條,裏面的控件的大小可以改變。QSplitter控件經常做爲佈局管理器使用,給用戶提供更多的界面控
原创 7-2 安裝事件過濾器(Installing Event Filters)
Qt的事件模型一個強大的功能是一個QObject對象能夠監視發送其他QObject對象的事件,在事件到達之前對其進行處理。 假設我們有一個CustomerInfoDialog控件,由一些QLineEdit控件組成。我們希望使用Spac
原创 5-4 雙緩衝技術(Double Buffering)(3、事件處理函數)
以下是Plotter控件的事件處理函數部分 void Plotter::paintEvent(QPaintEvent * /* event */) { QStylePainter painter(this); pa
原创 5-4 雙緩衝技術(Double Buffering)(5、類PlotSettings實現)
下面是PlotSettings的實現: PlotSettings::PlotSettings() { minX = 0.0; ma
原创 7-3 系統繁忙時的響應(Staying Responsive During Intensive Processing)
當我們調用QApplication::exec()時,Qt就開始了事件循環。啓動時,Qt發出顯示和繪製事件,把控件顯示出來。然後,事件循環就開始了,不停檢查是否有事件發生,然後把事件分派到程序中的QObject對象。 一個事件正在處理
原创 5-4 雙緩衝技術(Double Buffering)(1、簡介和源代碼部分)
這一節實在是有些長,翻譯完後統計了一下,快到2w字了。考慮到閱讀的方便和網絡的速度,打算把這節分爲5個部分,第一部分爲雙緩衝技術的一個簡介和所有的
原创 第六章序-佈局管理(Chapter 6. Layout Management)
窗體上的所有的控件必須有一個合適的尺寸和位置。Qt提供了一些類負責排列窗體上的控件,主要有:QHBoxLayout,QVBoxLayout,QGr
原创 6-4 滾動區域(Scrolling Areas)
英漢對照:viewport(視圖) QScrollArea類提供了一個可以滾動的可視窗口和兩個滾動條。如果我們想給一個控件加上一個滾動條,從QScrollArea繼承會比設計我們自己的QScrollBar類實現滾動函數更簡單。 Fig