第一個(gè)Qt程序
新建一個(gè)空的項(xiàng)目
.pro文件內(nèi)容
示例代碼:
10年積累的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有廣安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1 /* 應(yīng)用程序抽象類 */ 2 #include <QApplication> 3 #include <QWidget> 4 #include <QPushButton> 5 #include <QDebug> 6 7 int main(int argc, char *argv[]) 8 { 9 QApplication app(argc, argv);10 11 QWidget w;12 w.show();13 w.setWindowTitle("你好,世界!"); // Qt 5不存在亂碼的問(wèn)題了14 15 QPushButton btn("button");16 btn.setParent(&w); // 不設(shè)置父對(duì)象,那么按鈕也就是一個(gè)獨(dú)立的窗口17 btn.show();18 19 QObject::connect(&btn, QPushButton::clicked, [](){20 qDebug() << "button is clicked..." << endl;21 });22 23 return app.exec();24 }
QLineEdit常用功能
設(shè)置輸入密碼
設(shè)置提示文字
設(shè)置自動(dòng)匹配
示例代碼:
1 #include <QApplication> 2 #include <QLineEdit> 3 #include <QDebug> 4 #include <QCompleter> 5 #include <QWidget> 6 7 int main(int argc, char *argv[]) 8 { 9 QApplication app(argc, argv);10 11 QLineEdit lineEdit;12 /* 顯示模式 enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit }; */13 //lineEdit.setEchoMode(QLineEdit::PasswordEchoOnEdit); // 失去焦點(diǎn)時(shí)候變?yōu)槊芪?4 15 /* 淘汰傳統(tǒng)的輸入之后還要點(diǎn)擊按鈕 */16 QObject::connect(&lineEdit, QLineEdit::returnPressed, [](){17 qDebug() << "You have entered the return key...";18 });19 20 /* 自動(dòng)補(bǔ)全 只有echomode設(shè)置為Normal時(shí)completer才有效 */21 QCompleter completer(QStringList() << "aa" << "abc" << "123");22 completer.setFilterMode(Qt::MatchContains); // 包含匹配 比如:輸入b也會(huì)匹配abc23 lineEdit.setCompleter(&completer);24 25 /* lineEdit設(shè)置提示文字 */26 lineEdit.setPlaceholderText("Please input text:");27 28 lineEdit.show();29 30 return app.exec();31 }
坐標(biāo)系統(tǒng)
設(shè)置坐標(biāo)
1 #include <QApplication> 2 #include <QWidget> 3 #include <QPushButton> 4 5 int main(int argc, char* argv[]) 6 { 7 QApplication app(argc, argv); 8 9 /* 構(gòu)造一個(gè)窗口*/10 QWidget w;11 12 /*顯示窗口*/13 w.show();14 15 /* 按鈕也是個(gè)窗口 */16 QPushButton button;17 button.setText("Button");18 /* 窗口對(duì)象的父子關(guān)系,影響顯示位置 */19 /* 沒(méi)有父窗口的窗口,我們稱之為主窗口 */20 button.setParent(&w);21 button.show();22 23 button.setGeometry(30, 30, 100, 30);24 25 return app.exec();26 }
布局Layout
QHBoxLayout簡(jiǎn)單實(shí)現(xiàn)控件居中:
main.cpp
效果圖:
QHBoxLayout實(shí)現(xiàn)居中并且設(shè)置控件比重:
main.cpp
效果圖:
QGridLayout實(shí)現(xiàn)控件居中:
main.cpp
效果圖:
QGridLayout實(shí)現(xiàn)簡(jiǎn)單的登錄界面:
main.cpp
效果圖:
常用控件的基本使用
QLabel
QLabel.cpp
Button組(QPushButton,QRadioButton, QCombobox,QCheckBox)
Button.cpp
效果圖:
QTextEdit基本使用:
QTextEdit.cpp
效果圖:
QGroupBox基本使用:
QGroupBox.cpp
效果圖:
QSlider、QSpinBox基本使用:
QSpinBoxAndQSlider.cpp
效果圖:
QLcdnumber基本使用:
QLCDNumber.cpp
效果圖:
QEvent
MyEvent.h
MyEvent.cpp
EventFilter
MyApplication.h
MyApplication.cpp
MyWidget.h
MyWidget.cpp
QPainter
覆蓋基類的painterEvent虛函數(shù),函數(shù)原型為:
簡(jiǎn)單的圖形繪制:
1 void MyWidget::paintEvent(QPaintEvent *) 2 { 3 // 簡(jiǎn)單的繪制 4 QPainter p(this); 5 //p.drawArc(100, 100, 20, 20, 10, 10); 6 p.drawLine(QPointF(100, 100), QPointF(200, 200)); 7 p.setPen(QPen(QColor("red"))); 8 p.setBrush(Qt::yellow); // 畫刷是代表封閉圖形的內(nèi)部填充 9 p.drawRect(QRect(200, 200, 220, 220));10 p.setRenderHint(QPainter::Antialiasing); // 變得圓潤(rùn)一些11 p.drawEllipse(QPointF(150, 150), 40, 40);12 p.drawText(QPointF(250, 250), "Hello Qt");13 }
通過(guò)變換集來(lái)存儲(chǔ)所有的變換:
1 { 2 // 通過(guò)變換集來(lái)存放所有的變換 3 QPainter p(this); 4 QTransform trans; 5 //trans.rotate(88.0, Qt::YAxis); 6 //trans.translate(100, 300); 7 trans.scale(3, 3); 8 p.setTransform(trans); 9 p.drawLine(100, 100, 200, 100); 10 }
先畫一張圖,然后將該圖繪制到窗口上:
1 { 2 // 先畫一張圖,然后將圖繪制到窗口 3 QPixmap pixmap(size()); // pixmap默認(rèn)的是黑色背景 4 QPainter p(&pixmap); 5 6 // 想著設(shè)置pixmap背景為白色,并不能實(shí)現(xiàn),需要通過(guò)以下方法 7 //p.setBackground(QBrush(Qt::white)); 8 p.setBrush(Qt::white); 9 p.drawRect(0, 0, size().width(), size().height());10 p.drawLine(QPointF(100, 100), QPointF(200, 200));11 p.setPen(QPen(QColor("red")));12 p.setBrush(Qt::yellow); // 畫刷是代表封閉圖形的內(nèi)部填充13 p.drawRect(QRect(200, 200, 220, 220));14 15 p.end();16 p.begin(this); // 開(kāi)始繪制窗口17 p.drawPixmap(0, 0, pixmap);18 }
分享名稱:Qt常用控件+事件+基礎(chǔ)繪圖(四)
文章轉(zhuǎn)載:http://vcdvsql.cn/article18/pdiodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、自適應(yīng)網(wǎng)站、App設(shè)計(jì)、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)