一般做哪些外貿(mào)網(wǎng)站寧德市政府
目錄
1. QWidget核心屬性
2. 按鈕類控件
2.1 PushButton 核心屬性
2.2 RadioButton?核心屬性
2.3 CheckBox 和 Tool Button?核心屬性
3. 顯示類控件?
3.1 Label?核心屬性
3.2 LCDNumber 核心屬性
3.3 ProgressBar?核心屬性
3.4 Calendar Widget?核心屬性
4. 輸入類控件?
4.1 Line Edit 核心屬性
4.2?TextEdit 核心屬性
4.3?ComboBox 核心屬性
4.4?SpinBox 核心屬性
4.5?DateEdit &TimeEdit 核心屬性
4.6?Dial 核心屬性
5. 多元素控件
5.1 List Widget 核心屬性
5.2?Table Widget 核心屬性
5.3?Tree Widget 核心屬性
6. 容器類控件
6.1?GroupBox 核心屬性
6.2?TabWidget 核心屬性
7.?布局管理器
7.1?垂直布局
7.2??平布局
7.3??格布局
7.4?表單布局
7.5 Spacer
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???????????新年快樂!!!
1. QWidget核心屬性
屬性 | 作? |
enabled | 設(shè)置控件是否可使?.true 表?可?, false 表?禁?. |
geometry | 位置和尺?.包含x,y,width,height四個(gè)部分. 其中坐標(biāo)是以?元素為參考進(jìn)?設(shè)置的. |
windowTitle | 設(shè)置widget標(biāo)題. |
windowIcon | 設(shè)置widget圖標(biāo). |
windowOpacity | 設(shè)置widget透明度. |
cursor | ?標(biāo)懸停時(shí)顯?的圖標(biāo)形狀. 是普通箭頭,還是沙漏,還是?字等形狀. 在QtDesigner界?中可以清楚看到可選項(xiàng). |
font | 字體相關(guān)屬性. 涉及到字體家族,字體??,粗體,斜體,下劃線等等樣式. |
toolTip | ?標(biāo)懸停在widget上會(huì)在狀態(tài)欄中顯?的提?信息. |
toolTipDuring | toolTip顯?的持續(xù)時(shí)間. |
statusTip | Widget狀態(tài)發(fā)?改變時(shí)顯?的提?信息(?如按鈕被按下等). |
whatsThis | ?標(biāo)懸停并按下alt+F1時(shí),顯?的幫助信息(顯?在?個(gè)彈出的窗?中). |
styleSheet | 允許使?CSS來設(shè)置widget中的樣式. Qt中?持的樣式?常豐富,對(duì)于前端開發(fā)?員上?是?常友好的. |
focusPolicy | 該widget如何獲取到焦點(diǎn). ? Qt::NoFocus:控件不參與焦點(diǎn)管理,即?法通過鍵盤或?標(biāo)獲取焦點(diǎn) ? Qt::TabFocus:控件可以通過Tab鍵獲得焦點(diǎn) ? Qt::ClickFocus:控件可以通過?標(biāo)點(diǎn)擊獲得焦點(diǎn) ? Qt::StrongFocus:控件可以通過鍵盤和?標(biāo)獲得焦點(diǎn) ? Qt::WheelFocus:控件可以通過?標(biāo)滾輪獲得焦點(diǎn)(在某些平臺(tái)或樣式中可能不可 ?) |
contextMenuPolicy | 上下?菜單的顯?策略. ? Qt::DefaultContextMenu:默認(rèn)的上下?菜單策略,??可以通過?標(biāo)右鍵或鍵盤 快捷鍵觸發(fā)上下?菜單 ? Qt::NoContextMenu:禁?上下?菜單,即使??點(diǎn)擊?標(biāo)右鍵也不會(huì)顯?菜單 ? Qt::PreventContextMenu:防?控件顯?上下?菜單,即使??點(diǎn)擊?標(biāo)右鍵也不 會(huì)顯?菜單 ? Qt::ActionsContextMenu:將上下?菜單替換為控件的“動(dòng)作”菜單,??可以通 過?標(biāo)右鍵或鍵盤快捷鍵觸發(fā)這個(gè)菜單 ? Qt::CustomContextMenu:使??定義的上下?菜單,??可以通過?標(biāo)右鍵或鍵 盤快捷鍵觸發(fā)這個(gè)菜單 |
locale | 設(shè)置語?和國(guó)家地區(qū). |
acceptDrops | 該部件是否接受拖放操作。 如果設(shè)置為true,那么該部件就可以接收來?其他部件的拖放操作。當(dāng)?個(gè)部件被拖放 到該部件上時(shí),該部件會(huì)接收到相應(yīng)的拖放事件(如dropEvent)。 如果設(shè)置為false,那么該部件將不會(huì)接收任何拖放操作。 |
minimumSize | 控件的最?尺?.包含最?寬度和最??度. |
maximumSize | 控件的最?尺?.包含最?寬度和最??度. |
sizePolicy | 尺?策略.設(shè)置控件在布局管理器中的縮放?式. |
windowModality | 指定窗?是否具有"模態(tài)"?為. |
sizeIncrement | 拖動(dòng)窗???時(shí)的增量單位. |
baseSize | 窗?的基礎(chǔ)??,?來搭配sizeIncrement調(diào)整組件尺?是計(jì)算組件應(yīng)該調(diào)整到的合適的值. |
palette | 調(diào)?板.可以設(shè)置widget的顏??格. |
mouseTracking | 是否要跟蹤?標(biāo)移動(dòng)事件. 如果設(shè)為true,表?需要跟蹤,則?標(biāo)劃過的時(shí)候該widget就能持續(xù)收到?標(biāo)移動(dòng)事件. 如果設(shè)為false,表?不需要跟蹤,則?標(biāo)劃過的時(shí)候widget不會(huì)收到?標(biāo)移動(dòng)事件,只 能收到?標(biāo)按下或者釋放的事件. |
tabletTracking | 是否跟蹤觸摸屏的移動(dòng)事件. 類似于mouseTracking.Qt5.9中引?的新屬性. |
layoutDirection | 布局?向. ? Qt::LeftToRight:?本從左到右排列,也是默認(rèn)值。 ? Qt::RightToLeft:?本從右到左排列。 ? Qt::GlobalAtomics:部件的布局?向由全局原?性決定(PS這個(gè)翻譯其實(shí)有點(diǎn)尷 尬.其實(shí)就是根據(jù)應(yīng)?程序中的其他widget布局?向確定的). |
autoFillBackground | 是否?動(dòng)填充背景顏?. |
windowFilePath | 能夠把widget和?個(gè)本地?件路徑關(guān)聯(lián)起來. PS:其實(shí)作?不?. |
accessibleName | 設(shè)置widget的可訪問名稱.這個(gè)名稱可以被輔助技術(shù)(像屏幕閱讀器)獲取到.這個(gè)屬性?于實(shí)現(xiàn)?障礙程序的場(chǎng)景中(也就是給盲?寫的程序). PS:其實(shí)盲?也是可以使?電腦和?機(jī)的.甚?盲?還能成為程序猿.參? https://www.bilibili.com/video/BV1954y1d7z |
accessibleDescripti on | 設(shè)置widget的詳細(xì)描述.作?同accessibleName |
inputMethodHints | 針對(duì)輸?框有效,?來提???當(dāng)前能輸?的合法數(shù)據(jù)的格式.?如只能輸?數(shù)字,只能 輸??期等. |
2. 按鈕類控件
2.1 PushButton 核心屬性
QPushButton 繼承? QAbstractButton .這個(gè)類是?個(gè)抽象類.是其他按鈕的?類.
屬性 | 說明 |
text | 按鈕中的?本 |
icon | 按鈕中的圖標(biāo) |
iconSize | 按鈕中圖標(biāo)的尺? |
shortCut | 按鈕對(duì)應(yīng)的快捷鍵 |
autoRepeat | 按鈕是否會(huì)重復(fù)觸發(fā).當(dāng)?標(biāo)左鍵按住不放時(shí) 如果設(shè)為true,則會(huì)持續(xù)產(chǎn)??標(biāo)點(diǎn)擊事件; 如果設(shè)為false,則必須釋放?標(biāo),再次按下?標(biāo)時(shí)才能產(chǎn)?點(diǎn)擊事件. (相當(dāng)于游戲?柄上的"連發(fā)"效果) |
autoRepeatDelay | 重復(fù)觸發(fā)的延時(shí)時(shí)間.按住按鈕多久之后,開始重復(fù)觸發(fā). |
autoRepeatInterval | 重復(fù)觸發(fā)的周期. |
1. QAbstractButton作為 QWidget 的?類,當(dāng)然也繼承了 QWidget 的屬性.上?介紹的QWidget ?的各種屬性?法,對(duì)于 QAbstractButton 同樣適?.因此表格僅列出 QAbstractButton獨(dú)有的屬性.
2. Qt的api設(shè)計(jì)?格是?常清晰的.此處列出的屬性都是可以獲取和設(shè)置的.例如,使? text() 獲取按鈕?本;使? setText() 設(shè)置?本.
2.2 RadioButton?核心屬性
QRadioButton 是單選按鈕.可以讓我們?cè)诙鄠€(gè)選項(xiàng)中選擇?個(gè).
作為 QAbstractButton 和 QWidget 的?類,上?介紹的屬性和?法,對(duì)于同樣適?.
屬性 | 說明 |
checkable | 是否能選中 |
checked | 是否已經(jīng)被選中.checkable是checked的前提條件. |
autoExclusive | 是否排他. 選中?個(gè)按鈕之后是否會(huì)取消其他按鈕的選中. 對(duì)于 QRadioButton 來說默認(rèn)就是排他的. |
2.3 CheckBox 和 Tool Button?核心屬性
QCheckBox 表?復(fù)選按鈕.可以允許選中多個(gè). 和 Q CheckBox 最相關(guān)的屬性也是 QAbstractButton.
QToolButton 的?部分功能,和 QPushButton 是?致的.但是 QToolButton 主要應(yīng)?在? 具欄,菜單等場(chǎng)景.
3. 顯示類控件?
3.1 Label?核心屬性
屬性 | 說明 |
text | QLabel 中的?本 |
textFormat | ?本的格式. ? Qt::PlainText 純?本 ? Qt::RichText 富?本(?持html標(biāo)簽) ? Qt::MarkdownText markdown格式 ? Qt::AutoText 根據(jù)?本內(nèi)容?動(dòng)決定?本格式. |
pixmap | QLabel 內(nèi)部包含的圖?. |
scaledContents | 設(shè)為true表?內(nèi)容?動(dòng)拉伸填充 QLabel 設(shè)為false則不會(huì)?動(dòng)拉伸 |
alignment | 對(duì)??式. 可以設(shè)置?平和垂直?向如何對(duì)?. |
wordWrap | 設(shè)為true內(nèi)部的?本會(huì)?動(dòng)換?. 設(shè)為false則內(nèi)部?本不會(huì)?動(dòng)換?. |
indent | 設(shè)置?本縮進(jìn).?平和垂直?向都?效. |
margin | 內(nèi)部?本和邊框之間的邊距. 不同于于indent,但是是上下左右四個(gè)?向都同時(shí)有效. ?indent最多只是兩個(gè)?向有效(具體哪兩個(gè)?向有效取決于alignment) |
openExternalLinks | 是否允許打開?個(gè)外部的鏈接. (當(dāng)QLabel?本內(nèi)容包含url的時(shí)候涉及到) |
buddy | 給QLabel關(guān)聯(lián)?個(gè)"伙伴",這樣點(diǎn)擊QLabel時(shí)就能激活對(duì)應(yīng)的伙伴. 例如伙伴如果是?個(gè)QCheckBox,那么該QCheckBox就會(huì)被選中. |
3.2 LCDNumber 核心屬性
QLCDNumer 是?個(gè)專??來顯?數(shù)字的控件.類似于"?式計(jì)算器"的效果.
屬性 | 說明 |
intValue | QLCDNumber 顯?的數(shù)字值(int). |
value | QLCDNumber 顯?的數(shù)字值(double). 和intValue是聯(lián)動(dòng)的. 例如給value設(shè)為1.5,intValue的值就是2. 另外,設(shè)置value和intValue的?法名字為 display ,?不是 setValue 或 者 setIntValue . |
digitCount | 顯??位數(shù)字. |
mode | 數(shù)字顯?形式. 1. QLCDNumber::Dec :?進(jìn)制模式,顯?常規(guī)的?進(jìn)制數(shù)字。 2. QLCDNumber::Hex :?六進(jìn)制模式,以?六進(jìn)制格式顯?數(shù)字。 3. QLCDNumber::Bin :?進(jìn)制模式,以?進(jìn)制格式顯?數(shù)字。 4. QLCDNumber::Oct :?進(jìn)制模式,以?進(jìn)制格式顯?數(shù)字。 只有?進(jìn)制的時(shí)候才能顯??數(shù)點(diǎn)后的內(nèi)容. |
segmentStyle | 設(shè)置顯??格. 1. QLCDNumber::Flat :平?的顯??格,數(shù)字呈現(xiàn)在?個(gè)平坦的表?上。 2. QLCDNumber::Outline :輪廓顯??格,數(shù)字具有清晰的輪廓和陰影效 果。 3. QLCDNumber::Filled :填充顯??格,數(shù)字被填充顏?并與背景區(qū)分 開。 |
smallDecimalPoint | 設(shè)置?較?的?數(shù)點(diǎn). |
3.3 ProgressBar?核心屬性
?使? QProgressBar 表??個(gè)進(jìn)度條.
屬性 | 說明 |
minimum | 進(jìn)度條最?值 |
maximum | 進(jìn)度條最?值 |
value | 進(jìn)度條當(dāng)前值 |
alignment | ?本在進(jìn)度條中的對(duì)??式. ? Qt::AlignLeft :左對(duì)? ? Qt::AlignRight :右對(duì)? ? Qt::AlignCenter :居中對(duì)? ? Qt::AlignJustify :兩端對(duì)? |
textVisible | 進(jìn)度條的數(shù)字是否可?. |
orientation | 進(jìn)度條的?向是?平還是垂直 |
invertAppearance | 是否是朝反?向增?進(jìn)度 |
textDirection | ?本的朝向. |
format | 展?的數(shù)字格式. ? %p :表?進(jìn)度的百分?(0-100) ? %v :表?進(jìn)度的數(shù)值(0-100) ? %m :表?剩余時(shí)間(以毫秒為單位) ? %t :表?總時(shí)間(以毫秒為單位) |
3.4 Calendar Widget?核心屬性
QCalendarWidget 表??個(gè)"?歷",形如
屬性 說明 selectDate 當(dāng)前選中的?期 minimumDate 最??期 maximumDate 最??期 firstDayOfWeek 每周的第?天(也就是?歷的第?列)是周?. gridVisible 是否顯?表格的邊框 selectionMode 是否允許選擇?期 navigationBarVisible ?歷上?標(biāo)題是否顯? horizontalHeaderFormat ?歷上?標(biāo)題顯?的?期格式 verticalHeaderFormat ?歷第?列顯?的內(nèi)容格式 dateEditEnabled 是否允許?期被編輯 重要信號(hào)
信號(hào) 說明 selectionChanged(const QDate&) 當(dāng)選中的?期發(fā)?改變時(shí)發(fā)出 activated(const QDate&) 當(dāng)雙擊?個(gè)有效的?期或者按下回?鍵時(shí)發(fā)出,形參是?個(gè)QDate類型,保存了選中的?期 currentPageChanged(int, int) 當(dāng)年份?份改變時(shí)發(fā)出,形參表?改變后的新年份和?份
4. 輸入類控件?
4.1 Line Edit 核心屬性
QLineEdit ?來表?單?輸?框.可以輸??段?本,但是不能換?.
屬性 | 說明 |
text | 輸?框中的?本 |
inputMask | 輸?內(nèi)容格式約束 |
maxLength | 最??度 |
frame | 是否添加邊框 |
echoMode | 顯??式. ? QLineEdit::Normal :這是默認(rèn)值,?本框會(huì)顯?輸?的?本。 ? QLineEdit::Password :在這種模式下,輸?的字符會(huì)被隱藏, 通常?星號(hào)(*)或等號(hào)(=)代替。 ? QLineEdit::NoEcho :在這種模式下,?本框不會(huì)顯?任何輸? 的字符。 |
cursorPosition | 光標(biāo)所在位置 |
alignment | ?字對(duì)??式,設(shè)置?平和垂直?向的對(duì)?. |
dragEnabled | 是否允許拖拽 |
readOnly | 是否是只讀的(不允許修改) |
placeHolderText | 當(dāng)輸?框內(nèi)容為空的時(shí)候,顯?什么樣的提?信息 |
clearButtonEnabled | 是否會(huì)?動(dòng)顯?出"清除按鈕". |
核?信號(hào)
屬性 | 說明 |
void cursorPositionChanged(int old, int new) | 當(dāng)?標(biāo)移動(dòng)時(shí)發(fā)出此信號(hào),old為先前的位置,new為新位置。 |
void editingFinished() | 當(dāng)按返回或者回?鍵時(shí),或者?編輯失去焦點(diǎn)時(shí),發(fā)出此信號(hào)。 |
void returnPressed() | 當(dāng)返回或回?鍵按下時(shí)發(fā)出此信號(hào). 如果設(shè)置了驗(yàn)證器,必須要驗(yàn)證通過,才能觸發(fā). |
void selectionChanged() | 當(dāng)選中的?本改變時(shí),發(fā)出此信號(hào)。 |
void textChanged(const QString &text) | 當(dāng)QLineEdit中的?本改變時(shí),發(fā)出此信號(hào),text是新的?本。 代碼對(duì)?本的修改能夠觸發(fā)這個(gè)信號(hào). |
void textEdited(const QString &text)) | 當(dāng)QLineEdit中的?本改變時(shí),發(fā)出此信號(hào),text是新的?本。 代碼對(duì)?本的修改不能觸發(fā)這個(gè)信號(hào). |
4.2?TextEdit 核心屬性
QTextEdit 表?多?輸?框.也是?個(gè)富?本&markdown編輯器. 并且能在內(nèi)容超出編輯框范圍時(shí)?動(dòng)提供滾動(dòng)條.
屬性 | 說明 |
markdown | 輸?框內(nèi)持有的內(nèi)容.?持markdown格式.能夠?動(dòng)的對(duì)markdown?本進(jìn)? 渲染成html |
html | 輸?框內(nèi)持有的內(nèi)容.可以?持?部分html標(biāo)簽.包括img和table等. |
placeHolderText | 輸?框?yàn)榭諘r(shí)提?的內(nèi)容. |
readOnly | 是否是只讀的 |
undoRedoEnable | 是否開啟undo/redo功能. 按下ctrl+z觸發(fā)undo 按下ctrl+y觸發(fā)redo |
autoFormating | 開啟?動(dòng)格式化. |
tabstopWidth | 按下縮進(jìn)占多少空間 |
overwriteMode | 是否開啟覆蓋寫模式 |
acceptRichText | 是否接收富?本內(nèi)容 |
verticalScrollBarPolicy | 垂直?向滾動(dòng)條的出現(xiàn)策略 ? Qt::ScrollBarAsNeeded :根據(jù)內(nèi)容?動(dòng)決定是否需要滾動(dòng)條。這是默認(rèn) 值。 ? Qt::ScrollBarAlwaysOff :總是關(guān)閉滾動(dòng)條。 ? Qt::ScrollBarAlwaysOn :總是顯?滾動(dòng)條。 |
horizontalScrollBarPolicy | ?平?向滾動(dòng)條的出現(xiàn)策略 ? Qt::ScrollBarAsNeeded :根據(jù)內(nèi)容?動(dòng)決定是否需要滾動(dòng)條。這是默認(rèn) 值。 ? Qt::ScrollBarAlwaysOff :總是關(guān)閉滾動(dòng)條。 ? Qt::ScrollBarAlwaysOn :總是顯?滾動(dòng)條。 |
核?信號(hào)
信號(hào) | 說明 |
textChanged() | ?本內(nèi)容改變時(shí)觸發(fā) |
selectionChanged() | 選中范圍改變時(shí)觸發(fā) |
cursorPositionChanged() | 光標(biāo)移動(dòng)時(shí)觸發(fā) |
undoAvailable(bool) | 可以進(jìn)?undo操作時(shí)觸發(fā) |
redoAvailable(bool) | 可以進(jìn)?redo操作時(shí)觸發(fā) |
copyAvaiable(bool) | ?本被選中/取消選中時(shí)觸發(fā) |
4.3?ComboBox 核心屬性
QComboBox 表?下拉框.
屬性 | 說明 |
currentText | 當(dāng)前選中的?本 |
currentIndex | 當(dāng)前選中的條?下標(biāo). 從0開始計(jì)算.如果當(dāng)前沒有條?被選中,值為-1 |
editable | 是否允許修改 設(shè)為true時(shí), QComboBox 的?為就?常接近 QLineEdit ,也可以 設(shè)置 validator |
iconSize | 下拉框圖標(biāo)(?三?)的?? |
maxCount | 最多允許有多少個(gè)條? |
核??法
?法 | 說明 |
addItem(constQString&) | 添加?個(gè)條? |
currentIndex() | 獲取當(dāng)前條?的下標(biāo) 從0開始計(jì)算.如果當(dāng)前沒有條?被選中,值為-1 |
currentText() | 獲取當(dāng)前條?的?本內(nèi)容. |
核?信號(hào)
?法 | 說明 |
activated(int) activated(constQString&text) | 當(dāng)??選擇了?個(gè)選項(xiàng)時(shí)發(fā)出. 這個(gè)時(shí)候相當(dāng)于??點(diǎn)開下拉框,并且?標(biāo)劃過某個(gè)選項(xiàng). 此時(shí)還沒有確認(rèn)做出選擇. |
currentIndexChanged(int) currentIndexChanged(constQString &text) | 當(dāng)前選項(xiàng)改變時(shí)發(fā)出. 此時(shí)??已經(jīng)明確的選擇了?個(gè)選項(xiàng). ??操作或者通過程序操作都會(huì)觸發(fā)這個(gè)信號(hào). |
editTextChanged(constQString& text) | 當(dāng)編輯框中的?本改變時(shí)發(fā)出 (editable為true時(shí)有效) |
4.4?SpinBox 核心屬性
使? QSpinBox 或者 QDoubleSpinBox 表?"微調(diào)框",它是帶有按鈕的輸?框.可以?來輸?整 數(shù)/浮點(diǎn)數(shù).通過點(diǎn)擊按鈕來修改數(shù)值??.
由 于 Sp inBox 和 QDoubleSpinBox ?法基本相同,就只介紹 SpinBox 的使?了.
屬性 | 說明 |
value | 存儲(chǔ)的數(shù)值. |
singleStep | 每次調(diào)整的"步?".按下?次按鈕數(shù)據(jù)變化多少. |
displayInteger | 數(shù)字的進(jìn)制.例如displayInteger設(shè)為10,則是按照10進(jìn)制表?.設(shè)為2則為2 進(jìn)制表?. |
minimum | 最?值 |
maximum | 最?值 |
suffix | 后綴 |
prefix | 前綴 |
wrapping | 是否允許換? |
frame | 是否帶邊框 |
alignment | ?字對(duì)??式. |
readOnly | 是否允許修改 |
buttonSymbol | 按鈕上的圖標(biāo). ? UpDownArrows 上下箭頭形式 ? PlusMinus 加減號(hào)形式 ? NoButtons 沒有按鈕 |
accelerated(加速的) | 按下按鈕時(shí)是否為快速調(diào)整模式 |
correctionMode | 輸?有誤時(shí)如何修正. ? QAbstractSpinBox::CorrectToPreviousValue :如果??輸?了?個(gè) ?效的值(例如,在只能顯?正整數(shù)的SpinBox中輸?了負(fù)數(shù)),那么 SpinBox會(huì)恢復(fù)為上?個(gè)有效值。例如,如果SpinBox的初始值是1,?? 輸?了-1(?效),然后SpinBox會(huì)恢復(fù)為1。 ? QAbstractSpinBox::CorrectToNearestValue :如果??輸?了?個(gè) ?效的值,SpinBox會(huì)恢復(fù)為最接近的有效值。例如,如果SpinBox的初始 值是1,??輸?了-1(?效),那么SpinBox會(huì)恢復(fù)為0。 |
keyboardTrack | 是否開啟鍵盤跟蹤. 設(shè)為true,每次在輸?框輸??個(gè)數(shù)字,都會(huì)觸發(fā)?次valueChanged()和 textChanged()信號(hào). 設(shè)為false,只有在最終按下enter或者輸?框失去焦點(diǎn),才會(huì)觸發(fā) valueChanged()和textChanged()信號(hào). |
核?信號(hào)
信號(hào) | 說明 |
textChanged(QString) | 微調(diào)框的?本發(fā)?改變時(shí)會(huì)觸發(fā). 參數(shù)QString帶有前綴和后綴. |
valueChanged(int) | 微調(diào)框的?本發(fā)?改變時(shí)會(huì)觸發(fā). 參數(shù)int,表?當(dāng)前的數(shù)值. |
4.5?DateEdit &TimeEdit 核心屬性
使? QDateEdit 作為?期的微調(diào)框.使? QTimeEdit 作為時(shí)間的微調(diào)框.使? QDateTimeEdit 作為時(shí)間?期的微調(diào)框.
這?個(gè)控件?法?常相似,我們以 QDateTimeEdit 為例進(jìn)?介紹.
QDateTimeEdit 核?屬性
屬性 | 說明 |
dateTime | 時(shí)間?期的值.形如 2000/1/1 0:00:00 |
date | 單純?期的值.形如 2001/1/1 |
time | 單純時(shí)間的值.形如 0:00:00 |
displayFormat | 時(shí)間?期格式.形如 yyyy/M/d H:mm ? y 表?年份 ? M 表??份 ? d 表??期 ? H 表??時(shí) ? m 表?分鐘 ? s 表?秒 注意:這?的格式化符號(hào)的含義,不要記憶.不同語?/庫的設(shè)定規(guī)則 是存在差異的.?定是?的時(shí)候再去查. |
minimumDateTime | 最?時(shí)間?期 |
maximumDateTime | 最?時(shí)間?期 |
timeSpec | ? Qt::LocalTime :顯?本地時(shí)間。 ? Qt::UTC :顯?協(xié)調(diào)世界時(shí)(UTC)。 ? Qt::OffsetFromUTC :顯?相對(duì)于UTC的偏移量(時(shí)差). |
關(guān)于本地時(shí)間(LocalTime)和協(xié)調(diào)世界時(shí)(UTC)
UTC時(shí)間是?個(gè)基于原?鐘的標(biāo)準(zhǔn)時(shí)間.不受地球的?轉(zhuǎn)周期影響.和格林威治時(shí)間(GMT)是 ?常接近的.科學(xué)家會(huì)通過精密的設(shè)備來測(cè)量并維護(hù). 咱們的計(jì)算機(jī)內(nèi)部使?的時(shí)間就是基于UTC時(shí)間.
本地時(shí)間則是基于不同的時(shí)區(qū),對(duì)UTC時(shí)間做出了?些調(diào)整.?如咱們使?的北京時(shí)間,位于 "東?區(qū)",就需要在UTC時(shí)間基礎(chǔ)上+8個(gè)?時(shí)的時(shí)差.
核?信號(hào)
信號(hào) | 說明 |
dateChanged(QDate) | ?期改變時(shí)觸發(fā). |
timeChanged(QTime) | 時(shí)間改變時(shí)觸發(fā). |
dateTimeChanged(QDateTi me) | 時(shí)間?期任意?個(gè)改變時(shí)觸發(fā). |
4.6?Dial 核心屬性
使? Q Dial 表??個(gè)旋鈕.
有 些程序,通過?標(biāo)拖動(dòng)旋鈕旋轉(zhuǎn),即可完成?些相關(guān)的設(shè)置.
核?屬性
屬性 | 說明 |
value | 持有的數(shù)值. |
minimum | 最?值 |
maximum | 最?值 |
singleStep | 按下?向鍵的時(shí)候改變的步?. |
pageStep | 按下pageUp/pageDown的時(shí)候改變的步?. |
sliderPosition | 界?上旋鈕顯?的初始位置 |
tracking | 外觀是否會(huì)跟蹤數(shù)值變化. 默認(rèn)值為true.?般不需要修改. |
wrapping | 是否允許循環(huán)調(diào)整. 即數(shù)值如果超過最?值,是否允許回到最?值. (調(diào)整過程能否"套圈") |
notchesVisible | 是否顯?刻度線 |
notchTarget | 刻度線之間的相對(duì)位置. 數(shù)字越?,刻度線越稀疏. |
核?信號(hào)
屬性 | 說明 |
valueChanged(int) | 數(shù)值改變時(shí)觸發(fā) |
rangeChanged(int, int) | 范圍變化時(shí)觸發(fā) |
4.7?Slider 核心屬性
使? Q Slider 表??個(gè)滑動(dòng)條.
QSlider 和 QDial 都是繼承? QAbstractSlider ,因此?法上基本相同.
核?屬性
屬性 | 說明 |
value | 持有的數(shù)值. |
minimum | 最?值 |
maximum | 最?值 |
singleStep | 按下?向鍵的時(shí)候改變的步?. |
pageStep | 按下pageUp/pageDown的時(shí)候改變的步?. |
sliderPosition | 滑動(dòng)條顯?的初始位置 |
tracking | 外觀是否會(huì)跟蹤數(shù)值變化. 默認(rèn)值為true.?般不需要修改. |
orientation | 滑動(dòng)條的?向是?平還是垂直 |
invertedAppearance | 是否要翻轉(zhuǎn)滑動(dòng)條的?向 |
tickPosition | 刻度的位置. |
tickInterval | 刻度的密集程度. |
核?信號(hào)
屬性 | 說明 |
valueChanged(int) | 數(shù)值改變時(shí)觸發(fā) |
rangeChanged(int,int) | 范圍變化時(shí)觸發(fā) |
5. 多元素控件
Qt 中提供的多元素控件有:
? QListWidget
? QListView
? QTableWidget
? QTableView
? QTreeWidget
? QTreeView
xxWidget和xxView之間的區(qū)別?
以QTableWidget和QTableView為例.
? QTableView 是基于MVC設(shè)計(jì)的控件.QTableView??不持有數(shù)據(jù).使?QTableView的 時(shí)候需要??創(chuàng)建?個(gè)Model對(duì)象(?如 QStandardModel ),并且把Model和 QTableView 關(guān)聯(lián)起來.后續(xù)修改Model中的數(shù)據(jù)就會(huì)影響QTableView的顯?;修改 QTableView 的顯?也會(huì)影響到Model中的數(shù)據(jù)(雙向綁定).
? QTableWidget 則是QTableView的?類,對(duì)Model進(jìn)?了封裝.不需要???動(dòng)創(chuàng)建 Model對(duì)象,直接就可以往QTableWidget中添加數(shù)據(jù)了.
5.1 List Widget 核心屬性
使? QListWidget 能夠顯??個(gè)縱向的列表.形如:
每個(gè)選項(xiàng)都可以被選中.
核?屬性
屬性 | 說明 |
currentRow | 當(dāng)前被選中的是第?? |
count | ?共有多少? |
sortingEnabled | 是否允許排序 |
isWrapping | 是否允許換? |
itemAlignment | 元素的對(duì)??式 |
selectRectVisible | 被選中的元素矩形是否可? |
spacing | 元素之間的間隔 |
核??法
?法 | 說明 |
addItem(constQString&label) addItem(QListWidgetItem*item) | 列表中添加元素. |
currentItem() | 返回QListWidgetItem*表?當(dāng)前選中的元素 |
setCurrentItem(QListWidgetItem*item) | 設(shè)置選中哪個(gè)元素 |
setCurrentRow(introw) | 設(shè)置選中第??的元素 |
insertItem(constQString&label,int row) insertItem(QListWidgetItem*item,int row) | 在指定的位置插?元素 |
item(introw) | 返回QListWidgetItem*表?第row?的元素 |
takeItem(introw) | 刪除指定?的元素,返回QListWidgetItem*表?是哪個(gè)元素被刪 除了 |
核?信號(hào)
?法 | 說明 |
currentItemChanged(QListWidgetItem* current,QListWidgetItem*old) | 選中不同元素時(shí)會(huì)觸發(fā).參數(shù)是當(dāng)前選中的元素和之前選中的元素. |
currentRowChanged(int) | 選中不同元素時(shí)會(huì)觸發(fā).參數(shù)是當(dāng)前選中元素的?數(shù). |
itemClicked(QListWidgetItem*item) | 點(diǎn)擊某個(gè)元素時(shí)觸發(fā) |
itemDoubleClicked(QListWidgetItem* item) | 雙擊某個(gè)元素時(shí)觸發(fā) |
itemEntered(QListWidgetItem*item) | ?標(biāo)進(jìn)?元素時(shí)觸發(fā) |
在上述介紹中,涉及到?個(gè)關(guān)鍵的類, QListWidgetItem . 這個(gè)類表? QListWidget 中的?個(gè)元素. 核??法如下,本質(zhì)上就是?個(gè)"?本+圖標(biāo)"構(gòu)成的.
?法 | 說明 |
setFont | 設(shè)置字體 |
setIcon | 設(shè)置圖標(biāo) |
setHidden | 設(shè)置隱藏 |
setSizeHint | 設(shè)置尺? |
setSelected | 設(shè)置是否選中 |
setText | 設(shè)置?本 |
setTextAlignment | 設(shè)置?本對(duì)??式 |
5.2?Table Widget 核心屬性
使? QTableWidget 表??個(gè)表格控件.?個(gè)表格中包含若??,每???包含若?列. 表格中的每個(gè)單元格,是?個(gè) QTableWidgetItem 對(duì)象.
QTableWidget 核??法
?法 | 說明 |
item(int row, int column) | 根據(jù)?數(shù)列數(shù)獲取指定的QTableWidgetItem* |
setItem(int row, int column, QTableWidget*) | 根據(jù)行數(shù)列數(shù)設(shè)置表格中的元素 |
currentItem() | 返回被選中的元素QTableWidgetItem* |
currentRow() | 返回被選中元素是第?? |
currentColumn() | 返回被選中元素是第?列 |
row(QTableWidgetItem*) | 獲取指定item是第?? |
column(QTableWidgetItem*) | 獲取指定item是第?列 |
rowCount() | 獲取?數(shù) |
columnCount() | 獲取列數(shù) |
insertRow(introw) | 在第row?處插?新? |
insertColumn(intcolumn) | 在第column列插?新列 |
removeRow(introw) | 刪除第row? |
removeColumn(intcolumn) | 刪除第column列 |
setHorizontalHeaderItem(int column,QTableWidget*) | 設(shè)置指定列的表頭 |
setVerticalHeaderItem(introw, QTableWidget*) | 設(shè)置指定?的表頭 |
QTableWidgetItem 核?信號(hào)
信號(hào) | 說明 |
cellClicked(introw,intcolumn) | 點(diǎn)擊單元格時(shí)觸發(fā) |
cellDoubleClicked(introw,int column) | 雙擊單元格時(shí)觸發(fā) |
cellEntered(introw,intcolumn) | ?標(biāo)進(jìn)?單元格時(shí)觸發(fā) |
currentCellChanged(introw,int column,intpreviousRow,int previousColumn) | 選中不同單元格時(shí)觸發(fā) |
QTableWidgetItem 核??法
?法 | 說明 |
row() | 獲取當(dāng)前是第?? |
column() | 獲取當(dāng)前是第?列 |
setText(const QString&) | 設(shè)置?本 |
setTextAlignment(int) | 設(shè)置?本對(duì)? |
setIcon(const QIcon&) | 設(shè)置圖標(biāo) |
setSelected(bool) | 設(shè)置被選中 |
setSizeHints(const QSize&) | 設(shè)置尺? |
setFont(const QFont&) | 設(shè)置字體 |
5.3?Tree Widget 核心屬性
使? QTreeWidget 表??個(gè)樹形控件.??的每個(gè)元素,都是?個(gè) QTreeWidgetItem ,每個(gè) QTreeWidgetItem 可以包含多個(gè)?本和圖標(biāo),每個(gè)?本/圖標(biāo)為?個(gè)列.
可以給 QTreeWidget 設(shè)置頂層節(jié)點(diǎn)(頂層節(jié)點(diǎn)可以有多個(gè)),然后再給頂層節(jié)點(diǎn)添加?節(jié)點(diǎn),從?構(gòu)成 樹形結(jié)構(gòu).
QTreeWidget 核??法
?法 | 說明 |
clear | 清空所有?節(jié)點(diǎn) |
addTopLevelItem(QTreeWidgetItem*item) | 新增頂層節(jié)點(diǎn) |
topLevelItem(intindex) | 獲取指定下標(biāo)的頂層節(jié)點(diǎn). |
topLevelItemCount() | 獲取頂層節(jié)點(diǎn)個(gè)數(shù) |
indexOfTopLevelItem(QTreeWidgetItem* item) | 查詢指定節(jié)點(diǎn)是頂層節(jié)點(diǎn)中的下標(biāo) |
takeTopLevelItem(intindex) | 刪除指定的頂層節(jié)點(diǎn).返回QTreeWidgetItem*表?被刪除 的元素 |
currentItem() | 獲取到當(dāng)前選中的節(jié)點(diǎn),返回QTreeWidgetItem* |
setCurrentItem(QTreeWidgetItem*item) | 選中指定節(jié)點(diǎn) |
setExpanded(bool) | 展開/關(guān)閉節(jié)點(diǎn) |
setHeaderLabel(constQString&text) | 設(shè)置TreeWidget的header名稱. |
QTreeWidget 核?信號(hào)
信號(hào) | 說明 |
currentItemChanged(QTreeWidgetItem* current,QTreeWidgetItem*old) | 切換選中元素時(shí)觸發(fā) |
itemClicked(QTreeWidgetItem*item,intcol) | 點(diǎn)擊元素時(shí)觸發(fā) |
itemDoubleClicked(QTreeWidgetItem*item, intcol) | 雙擊元素時(shí)觸發(fā) |
itemEntered(QTreeWidgetItem*item,intcol) | ?標(biāo)進(jìn)?時(shí)觸發(fā) |
itemExpanded(QTreeWidgetItem*item) | 元素被展開時(shí)觸發(fā) |
itemCollapsend(QTreeWidgetItem*item) | 元素被折疊時(shí)觸發(fā) |
QTreeWidgetItem 核?屬性
屬性 | 說明 |
text | 持有的?本 |
textAlignment | ?本對(duì)??式 |
icon | 持有的圖表 |
font | ?本字體 |
hidden | 是否隱藏 |
disabled | 是否禁? |
expand | 是否展開 |
sizeHint | 尺??? |
selected | 是否選中 |
QTreeWidgetItem 核??法
?法 | 說明 |
addChild(QTreeWidgetItem*child) | 新增?節(jié)點(diǎn) |
childCount() | ?節(jié)點(diǎn)的個(gè)數(shù) |
child(intindex) | 獲取指定下標(biāo)的?節(jié)點(diǎn).返回QTreeWidgetItem* |
takeChild(intindex) | 刪除對(duì)應(yīng)下標(biāo)的?節(jié)點(diǎn) |
removeChild(QTreeWidgetItem* child) | 刪除對(duì)應(yīng)的?節(jié)點(diǎn) |
parent() | 獲取該元素的?節(jié)點(diǎn) |
6. 容器類控件
6.1?GroupBox 核心屬性
使? QGroupBox 實(shí)現(xiàn)?個(gè)帶有標(biāo)題的分組框.可以把其他的控件放到??作為?組.這樣看起來能更 好看?點(diǎn).
注意,不要把 QGroupBox 和?QButtonGroup 混淆.(之前在介紹 QRadionButton 的時(shí)候提到了 QButtonGroup )
核?屬性
屬性 | 說明 |
title | 分組框的標(biāo)題 |
alignment | 分組框內(nèi)部?jī)?nèi)容的對(duì)??式 |
flat | 是否是"扁平"模式 |
checkable | 是否可選擇. 設(shè)為true,則在title前?會(huì)多出?個(gè)可勾選的部分. |
checked | 描述分組框的選擇狀態(tài)(前提是checkable為true) |
分組框只是?個(gè)?來"美化界?"這樣的組件,并不涉及到??交互和業(yè)務(wù)邏輯.屬于"錦上添花".
6.2?TabWidget 核心屬性
使? QTabWidget 實(shí)現(xiàn)?個(gè)帶有標(biāo)簽?的控件,可以往??添加?些widget.進(jìn)?步的就可以通過標(biāo)簽?來切換.
核?屬性
屬性 | 說明 |
tabPosition | 標(biāo)簽?所在的位置. ? North 上? ? South 下? ? West 左側(cè) ? East 右側(cè) |
currentIndex | 當(dāng)前選中了第?個(gè)標(biāo)簽?(從0開始計(jì)算) |
currentTabText | 當(dāng)前選中的標(biāo)簽?的?本 |
currentTabName | 當(dāng)前選中的標(biāo)簽?的名字 |
currentTabIcon | 當(dāng)前選中的標(biāo)簽?的圖標(biāo) |
currentTabToolTip | 當(dāng)前選中的標(biāo)簽?的提?信息 |
tabsCloseable | 標(biāo)簽?是否可以關(guān)閉 |
movable | 標(biāo)簽?是否可以移動(dòng) |
核?信號(hào)
屬性 | 說明 |
currentChanged(int) | 在標(biāo)簽?發(fā)?切換時(shí)觸發(fā),參數(shù)為被點(diǎn)擊的選項(xiàng)卡編號(hào). |
tabBarClicked(int) | 在點(diǎn)擊選項(xiàng)卡的標(biāo)簽條的時(shí)候觸發(fā).參數(shù)為被點(diǎn)擊的選項(xiàng)卡編號(hào). |
tabBarDoubleClicked(int) | 在雙擊選項(xiàng)卡的標(biāo)簽條的時(shí)候觸發(fā).參數(shù)為被點(diǎn)擊的選項(xiàng)卡編號(hào). |
tabCloseRequest(int) | 在標(biāo)簽?關(guān)閉時(shí)觸發(fā).參數(shù)為被關(guān)閉的選項(xiàng)卡編號(hào). |
注意
? QTabWidget 中的每個(gè)標(biāo)簽?都是?個(gè)
? 點(diǎn)擊標(biāo)簽?,就可以直接切換. QWidget
? 右鍵 QTabWidget ,可以添加標(biāo)簽?或者刪除標(biāo)簽?.
7.?布局管理器
之前使?Qt在界?上創(chuàng)建的控件,都是通過"絕對(duì)定位"的?式來設(shè)定的. 也就是每個(gè)控件所在的位置,都需要計(jì)算坐標(biāo),最終通過 setGeometry 或者 move ?式擺放過去.
這種設(shè)定?式其實(shí)并不?便.尤其是界?如果內(nèi)容?較多,不好計(jì)算.?且?個(gè)窗???往往是可以調(diào)整的,按照絕對(duì)定位的?式,也?法?適應(yīng)窗???.
因此Qt引?"布局管理器"(Layout)機(jī)制,來解決上述問題.
當(dāng)然,布局管理器并?Qt獨(dú)有.其他的GUI開發(fā)框架,像Android,前端等也有類似的機(jī)制.
7.1?垂直布局
使? QVBoxLayout 表?垂直的布局管理器.V是 vertical 的縮寫.
核?屬性
屬性 | 說明 |
layoutLeftMargin | 左側(cè)邊距 |
layoutRightMargin | 右側(cè)邊距 |
layoutTopMargin | 上?邊距 |
layoutBottomMargin | 下?邊距 |
layoutSpacing | 相鄰元素之間的間距 |
Layout 只是?于界?布局,并沒有提供信號(hào).
7.2??平布局
使? QHBoxLayout 表?垂直的布局管理器.H是 horizontal 的縮寫.
核?屬性(和 QVBoxLayout 屬性是?致的)
7.3??格布局
Qt 中還提供了 QGridLayout ?來實(shí)現(xiàn)?格布局的效果.可以達(dá)到M*N的這種?格的效果.
核?屬性
整體和 QVBoxLayout 以及 QHBoxLayout 相似.但是設(shè)置spacing的時(shí)候是按照垂直?平兩個(gè) ?向來設(shè)置的.
屬性 | 說明 |
layoutLeftMargin | 左側(cè)邊距 |
layoutRightMargin | 右側(cè)邊距 |
layoutTopMargin | 上?邊距 |
layoutBottomMargin | 下?邊距 |
layoutHorizontalSpacing | 相鄰元素之間?平?向的間距 |
layoutVerticalSpacing | 相鄰元素之間垂直?向的間距 |
layoutRowStretch | ??向的拉伸系數(shù) |
layoutColumnStretch | 列?向的拉伸系數(shù) |
7.4?表單布局
除了上述的布局管理器之外,Qt還提供了??于實(shí)現(xiàn)兩列表單的布局. 這 QFormLayout ,屬于是 QGridLayout 的特殊情況,專??于實(shí)現(xiàn)兩列表單的布局.
這種表單布局多?于讓??填寫信息的場(chǎng)景.左側(cè)列為提?,右側(cè)列為輸?框.
7.5 Spacer
使?布局管理器的時(shí)候,可能需要在控件之間,添加?段空?.就可以使? QSpacerItem 來表?.
核?屬性
屬性 | 說明 |
width | 寬度 |
height | ?度 |
hData | ?平?向的sizePolicy ? QSizePolicy::Ignored :忽略控件的尺?,不對(duì)布局產(chǎn)?影響。 ? QSizePolicy::Minimum :控件的最?尺?為固定值,布局時(shí)不會(huì)超過該值。 ? QSizePolicy::Maximum :控件的最?尺?為固定值,布局時(shí)不會(huì)?于該值。 ? QSizePolicy::Preferred :控件的理想尺?為固定值,布局時(shí)會(huì)盡量接近該 值。 ? QSizePolicy::Expanding :控件的尺?可以根據(jù)空間調(diào)整,盡可能占據(jù)更多空 間。 ? QSizePolicy::Shrinking :控件的尺?可以根據(jù)空間調(diào)整,盡可能縮?以適應(yīng) 空間。 |
vData | 垂直?向的sizePolicy 選項(xiàng)同上. |
最后的最后,創(chuàng)作不易,希望讀者三連支持💖
贈(zèng)人玫瑰,手有余香💖