回顧:
1.構建乙個qt工程步驟
(1)qmake -project
(2)qmake
(3)make
2.兩個常用的元件
qlabel 標籤
qpushbutton 按鈕
--------------------------------------
四 容器視窗(父視窗)
1.父視窗可以停靠其他元件,如果乙個元件在建立時指定父視窗,那麼就將停靠在父視窗上,如果不指定則飄在外面形成獨立的窗體.
2.常用的父視窗類
qwidget ==>絕大多數圖形相關元件都是它的子類
qmainwindow(用的比較多,是qwidget的子類)
qdialog(用的比較多,是qwidget的子類)
3.qwidget的兩個常用成員函式
(1)調整大小
resize(int x,int y); //引數是解析度
(2)移動位置
move(int x,int y);
五 訊號和槽的其他用法
1.一般情況訊號和槽引數純虛型別要相同
eg:qobject::connect(a,signal(sigfunc(int,string)),b,slot(slotfunc(int,string))); //ok
qobject::connect(a,signal(sigfunc(int,string)),b,slot(slotfunc(string,int))); //no
2.可以帶有預設引數
eg:qobject::connect(a,signal(sigfunc(int)),b,slot(slotfunc(int,string=「"))); //ok
3.訊號函式引數可以多於槽函式引數,多餘的引數將被忽略
eg:qobject::connect(a,signal(sigfunc(int,string)),b,slot(slotfunc(int))); //ok
qobject::connect(a,signal(sigfunc(int)),b,slot(slotfunc(int,string))); //no
4.乙個訊號可以被連線到多個槽函式
eg:qobject::connect(a,signal(sigfunc(int)),b1,slot(slotfunc(int))); //ok
qobject::connect(a,signal(sigfunc(int)),b2,slot(slotfunc(int))); //ok
注: 當a傳送訊號sigfunc,b1/b2的槽函式都會被執行,執行的順序不確定
5.多個訊號可以連線到同乙個槽函式
qobject::connect(a1,signal(sigfunc(int)),b,slot(slotfunc(int))); //ok
qobject::connect(a2,signal(sigfunc(int)),b,slot(slotfunc(int))); //ok
注: 無論a1還是a2發出訊號,b的槽函式都會被執行
案例《事件同步》
1.qsilder 滑塊類
qslider(qwidget *parent = q_nullptr)
qslider(qt::orientation orientation, qwidget *parent = q_nullptr)
qt::vertical 垂直的
qt::horizontal 水平
void setrange(int min,int max)[slots]; //設定滑動範圍
void setvalue(int)[slots]; //設定當前值
void valuechange(int value)[signal]; //值改變訊號
void setpagestep(int);//設定頁步距
2.qspinbox 選值框類(微調框)
qspinbox(qwidget *parent = q_nullptr);
void setrange(int minimum, int maximum);//設定選值範圍
void setvalue(int val)[slots];//設定當前值
void valuechanged(int i)[signal];//值改變訊號
六 物件導向的qt程式設計
1.基於物件的qt程式設計(不建議)
2.物件導向的qt程式設計
《案例》加法計算器
class calculatedialog:public qdialog
案例**如下:
#ifndef __calculatordialog_hcalculatordialog.h#define __calculatordialog_h#include
#include
#include
#include
//輸入文字的元件
#include //
雙精度的校驗器
#include //
水平布局器
class calculatordialog:public
qdialog;
#endif
//__calculatordialog_h
#include "calculatordialog.cppcalculatordialog.h"//
建構函式中初始化ui介面
calculatordialog::calculatordialog(void
)void calculatordialog::enablecalcbutton(void
)
else
}void calculatordialog::calcclicked(void
)
#include "calculator.cppcalculatordialog.h
"#include
calculatordialog dialog;
dialog.show();
return
}
Python學習第2天
0 主要有3點需要改進。1 首先是猜的值大了或者小了,需要引入if else 語句。2 其次是不要只給一次機會,可以給機會到猜對或者給一定次數的機會,那麼需要引入while。3 最後是產生的數字最好是隨機的不那麼好猜,引入了random模組,採用其中的randint函式產生了隨機值。0 介紹了三個層...
Qt學習第6天 xml 筆記
1 mikename female 18score stu 2 jackname male 20score stu info 實現如下效果 xml version 1.0 encoding utf 8 日銷售清單 日期 date 2020 05 19 時間 time 10 30 58 廠家 二汽神龍...
python第25天 學習python第25天
今天是在尚學堂學習python第25天今天學習了使用者管理,許可權管理 使用者管理 1.使用者的登入與退出 語法 mysql h hostname p port u username p dbname e h hostname 指定要連線mysql的主機名或者ip hostname就是具體的主機名或...