Qt入門(13)——Qt的呼叫退出
如果我們建立了一個視窗,接下來使這個應用程式在使用者讓它退出的時候退出。
#include <qfont.h>
因為這個程式使用了QFont,所以它需要包含qfont.h。Qt的字型提取和X中提供的可怕的字型提取大為不同,字型的載入和使用都已經被高度優化了。
QPushButton quit( "Quit", 0 );
這時,按鈕顯示“Quit”,確切的說這就是當使用者點選這個按鈕時程式所要做的。這不是一個巧合。因為這個按鈕是一個頂層視窗,我們還是把0作為它的父物件。
quit.resize( 75, 30 );
我們給這個按鈕選擇了另外一個大小,因為這個文字比“Hello world!”小一些。我們也可以使用QFontMetrics來設定正確的大小。
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
這裡我們給這個按鈕選擇了一個新字型,Times字型中的18點加粗字型。注意在這裡我們呼叫了這個字型。
你也可以改變整個應用程式的預設字型(使用QApplication::setFont())。
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
connect也許是Qt中最重要的特徵了。注意connect()是QObject中的一個靜態函式。不要把這個函式和socket庫中的connect()搞混了。
這一行在兩個Qt物件(直接或間接繼承QObject物件的物件)中建立了一種單向的連線。每一個Qt物件都有signals(傳送訊息)和slots(接收訊息)。所有視窗部件都是Qt物件。它們繼承QWidget,而QWidget繼承QObject。
這裡quit的clicked()訊號和a的quit()槽連線起來了,所以當這個按鈕被按下的時候,這個程式就退出了。
訊號和槽文件詳細描述了這一主題。
#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton quit( "Quit", 0 );
quit.resize( 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
a.setMainWidget( &quit );
quit.show();
return a.exec();
}
相關文章
- QT入門QT
- QT快速入門QT
- Qt Quick 如何入門?QTUI
- Qt入門之概述QT
- Qt開發Activex筆記(二):Qt呼叫Qt開發的Activex控制元件QT筆記控制元件
- Qt Creator匯入不同Qt版本QT
- Qt學習--Qt Plugin建立及呼叫2(外掛管理器)QTPlugin
- Qt全屏顯示和按鍵ESC退出全屏QT
- linux下qt用c++呼叫pythonLinuxQTC++Python
- QT從入門到入土(四)——多執行緒QT執行緒
- 《Qt 6.x從入門到精通》簡介QT
- VS中呼叫QT出現This application failed to start because it could not find or load the Qt platform pluginQTAPPAIPlatformPlugin
- qt 載入winPcap庫QTPCA
- QT從入門到入土(三)——檔案的讀寫操作QT
- QT6編寫外部庫並呼叫QT
- Qt自定義外掛plugin的開發和呼叫QTPlugin
- 2020-10-13 QEvent::MouseMove 之Qt::MouseButton使用QT
- 【QT】 Qt多執行緒的“那些事”QT執行緒
- Qt中用C++呼叫Python檔案的三種方法QTC++Python
- 單例模式入門講解C++和Qt5單例模式C++QT
- QT從入門到入土(八)——專案打包和釋出QT
- QT從入門到入土(四)——多執行緒(QtConcurrent::run())QT執行緒
- QT從入門到入土(三)——訊號和槽機制QT
- 【點雲PCL入門】PCL+QT+VTK顯示點雲QT
- QTQT
- qt 寫入xml檔案例項QTXML
- Qt大型工程開發技術選型Part3:Qt呼叫C#編寫的COM元件例項QTC#元件
- C++ Qt開發:Qt的安裝與配置C++QT
- Qt 編譯qt-material-widgets皮膚的方法QT編譯
- Qt - Qt Creator下載與安裝QT
- Qt FontQT
- Qt MetaTypeInterfaceQT
- Qt MetadataQT
- 【Qt 專欄】Qt Creator 的 git 配置 & 上傳到giteeQTGitee
- QT Creator/QT Designer佈局自適應QT
- 29.qt quick-在QML中呼叫C++類QTUIC++
- Qt 子執行緒呼叫connect/QMetaObject::invokeMethod 不呼叫槽函式問題QT執行緒Object函式
- Qt+ECharts開發筆記(一):ECharts介紹、下載和Qt呼叫ECharts基礎柱狀圖DemoQTEcharts筆記
- QT 檔案相對路徑載入QT